//------------------------------------------------------------------------------
// <auto-generated>
//     Dieser Code wurde von einem Tool generiert.
//     Laufzeitversion:4.0.30319.17626
//
//     Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
//     der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------

namespace dotnetconsulting.WcfSampleClient.ServiceReference1 {
    using System.Runtime.Serialization;
    using System;
    
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="WithdrawException", Namespace="http://schemas.datacontract.org/2004/07/dotnetconsulting.WcfSample")]
    [System.SerializableAttribute()]
    public partial class WithdrawException : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string DescriptionField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int ReasonCodeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string TechnicalReasonField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Description {
            get {
                return this.DescriptionField;
            }
            set {
                if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
                    this.DescriptionField = value;
                    this.RaisePropertyChanged("Description");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int ReasonCode {
            get {
                return this.ReasonCodeField;
            }
            set {
                if ((this.ReasonCodeField.Equals(value) != true)) {
                    this.ReasonCodeField = value;
                    this.RaisePropertyChanged("ReasonCode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string TechnicalReason {
            get {
                return this.TechnicalReasonField;
            }
            set {
                if ((object.ReferenceEquals(this.TechnicalReasonField, value) != true)) {
                    this.TechnicalReasonField = value;
                    this.RaisePropertyChanged("TechnicalReason");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(ConfigurationName="ServiceReference1.IBankService")]
    public interface IBankService {
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IBankService/GetBalance", ReplyAction="http://tempuri.org/IBankService/GetBalanceResponse")]
        decimal GetBalance(string AccountNr);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IBankService/DepositAmount", ReplyAction="http://tempuri.org/IBankService/DepositAmountResponse")]
        void DepositAmount(string AccountNr);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IBankService/WithdrawAmount", ReplyAction="http://tempuri.org/IBankService/WithdrawAmountResponse")]
        [System.ServiceModel.FaultContractAttribute(typeof(dotnetconsulting.WcfSampleClient.ServiceReference1.WithdrawException), Action="http://tempuri.org/IBankService/WithdrawAmountWithdrawExceptionFault", Name="WithdrawException", Namespace="http://schemas.datacontract.org/2004/07/dotnetconsulting.WcfSample")]
        void WithdrawAmount(string AccountNr, decimal Amount);
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public interface IBankServiceChannel : dotnetconsulting.WcfSampleClient.ServiceReference1.IBankService, System.ServiceModel.IClientChannel {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class BankServiceClient : System.ServiceModel.ClientBase<dotnetconsulting.WcfSampleClient.ServiceReference1.IBankService>, dotnetconsulting.WcfSampleClient.ServiceReference1.IBankService {
        
        public BankServiceClient() {
        }
        
        public BankServiceClient(string endpointConfigurationName) : 
                base(endpointConfigurationName) {
        }
        
        public BankServiceClient(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public BankServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public BankServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        public decimal GetBalance(string AccountNr) {
            return base.Channel.GetBalance(AccountNr);
        }
        
        public void DepositAmount(string AccountNr) {
            base.Channel.DepositAmount(AccountNr);
        }
        
        public void WithdrawAmount(string AccountNr, decimal Amount) {
            base.Channel.WithdrawAmount(AccountNr, Amount);
        }
    }
}
