//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.18449
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace ThirdPartyBookingFeature.ThirdPartyBookingServiceReference {
    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="AvailabilityRequest", Namespace="http://schemas.datacontract.org/2004/07/Ink.CandidateTest")]
    [System.SerializableAttribute()]
    public partial class AvailabilityRequest : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        private System.DateTime DepartureDateField;
        
        private string DestinationField;
        
        private string OriginField;
        
        private System.DateTime ReturnDateField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public System.DateTime DepartureDate {
            get {
                return this.DepartureDateField;
            }
            set {
                if ((this.DepartureDateField.Equals(value) != true)) {
                    this.DepartureDateField = value;
                    this.RaisePropertyChanged("DepartureDate");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public string Destination {
            get {
                return this.DestinationField;
            }
            set {
                if ((object.ReferenceEquals(this.DestinationField, value) != true)) {
                    this.DestinationField = value;
                    this.RaisePropertyChanged("Destination");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public string Origin {
            get {
                return this.OriginField;
            }
            set {
                if ((object.ReferenceEquals(this.OriginField, value) != true)) {
                    this.OriginField = value;
                    this.RaisePropertyChanged("Origin");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public System.DateTime ReturnDate {
            get {
                return this.ReturnDateField;
            }
            set {
                if ((this.ReturnDateField.Equals(value) != true)) {
                    this.ReturnDateField = value;
                    this.RaisePropertyChanged("ReturnDate");
                }
            }
        }
        
        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.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="AvailabilityResponse", Namespace="http://schemas.datacontract.org/2004/07/Ink.CandidateTest")]
    [System.SerializableAttribute()]
    public partial class AvailabilityResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Collections.Generic.List<ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Journey> InboundJourneysField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Collections.Generic.List<ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Journey> OutoundJourneysField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.Generic.List<ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Journey> InboundJourneys {
            get {
                return this.InboundJourneysField;
            }
            set {
                if ((object.ReferenceEquals(this.InboundJourneysField, value) != true)) {
                    this.InboundJourneysField = value;
                    this.RaisePropertyChanged("InboundJourneys");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.Generic.List<ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Journey> OutoundJourneys {
            get {
                return this.OutoundJourneysField;
            }
            set {
                if ((object.ReferenceEquals(this.OutoundJourneysField, value) != true)) {
                    this.OutoundJourneysField = value;
                    this.RaisePropertyChanged("OutoundJourneys");
                }
            }
        }
        
        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.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Journey", Namespace="http://schemas.datacontract.org/2004/07/Ink.CandidateTest")]
    [System.SerializableAttribute()]
    public partial class Journey : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Location ArrivalStationField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.DateTime ArrivalTimeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string CarrierField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Location DepartureStationField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.DateTime DepartureTimeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string KeyField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string NumberField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Location ArrivalStation {
            get {
                return this.ArrivalStationField;
            }
            set {
                if ((object.ReferenceEquals(this.ArrivalStationField, value) != true)) {
                    this.ArrivalStationField = value;
                    this.RaisePropertyChanged("ArrivalStation");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.DateTime ArrivalTime {
            get {
                return this.ArrivalTimeField;
            }
            set {
                if ((this.ArrivalTimeField.Equals(value) != true)) {
                    this.ArrivalTimeField = value;
                    this.RaisePropertyChanged("ArrivalTime");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Carrier {
            get {
                return this.CarrierField;
            }
            set {
                if ((object.ReferenceEquals(this.CarrierField, value) != true)) {
                    this.CarrierField = value;
                    this.RaisePropertyChanged("Carrier");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Location DepartureStation {
            get {
                return this.DepartureStationField;
            }
            set {
                if ((object.ReferenceEquals(this.DepartureStationField, value) != true)) {
                    this.DepartureStationField = value;
                    this.RaisePropertyChanged("DepartureStation");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.DateTime DepartureTime {
            get {
                return this.DepartureTimeField;
            }
            set {
                if ((this.DepartureTimeField.Equals(value) != true)) {
                    this.DepartureTimeField = value;
                    this.RaisePropertyChanged("DepartureTime");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Key {
            get {
                return this.KeyField;
            }
            set {
                if ((object.ReferenceEquals(this.KeyField, value) != true)) {
                    this.KeyField = value;
                    this.RaisePropertyChanged("Key");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Number {
            get {
                return this.NumberField;
            }
            set {
                if ((object.ReferenceEquals(this.NumberField, value) != true)) {
                    this.NumberField = value;
                    this.RaisePropertyChanged("Number");
                }
            }
        }
        
        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.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Location", Namespace="http://schemas.datacontract.org/2004/07/Ink.CandidateTest")]
    [System.SerializableAttribute()]
    public partial class Location : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string CodeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string NameField;
        
        [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 Code {
            get {
                return this.CodeField;
            }
            set {
                if ((object.ReferenceEquals(this.CodeField, value) != true)) {
                    this.CodeField = value;
                    this.RaisePropertyChanged("Code");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Name {
            get {
                return this.NameField;
            }
            set {
                if ((object.ReferenceEquals(this.NameField, value) != true)) {
                    this.NameField = value;
                    this.RaisePropertyChanged("Name");
                }
            }
        }
        
        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.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="BookingRequest", Namespace="http://schemas.datacontract.org/2004/07/Ink.CandidateTest")]
    [System.SerializableAttribute()]
    public partial class BookingRequest : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        private System.Collections.Generic.List<ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Journey> JourneysField;
        
        private System.Collections.Generic.List<ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Pax> PassengersField;
        
        private string SessionKeyField;
        
        private string UserIdField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public System.Collections.Generic.List<ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Journey> Journeys {
            get {
                return this.JourneysField;
            }
            set {
                if ((object.ReferenceEquals(this.JourneysField, value) != true)) {
                    this.JourneysField = value;
                    this.RaisePropertyChanged("Journeys");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public System.Collections.Generic.List<ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Pax> Passengers {
            get {
                return this.PassengersField;
            }
            set {
                if ((object.ReferenceEquals(this.PassengersField, value) != true)) {
                    this.PassengersField = value;
                    this.RaisePropertyChanged("Passengers");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public string SessionKey {
            get {
                return this.SessionKeyField;
            }
            set {
                if ((object.ReferenceEquals(this.SessionKeyField, value) != true)) {
                    this.SessionKeyField = value;
                    this.RaisePropertyChanged("SessionKey");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public string UserId {
            get {
                return this.UserIdField;
            }
            set {
                if ((object.ReferenceEquals(this.UserIdField, value) != true)) {
                    this.UserIdField = value;
                    this.RaisePropertyChanged("UserId");
                }
            }
        }
        
        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.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Pax", Namespace="http://schemas.datacontract.org/2004/07/Ink.CandidateTest")]
    [System.SerializableAttribute()]
    public partial class Pax : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.ContactDetails ContactDetailsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string FirstNameField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int IdField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string LastNameField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.PassportDetails PassportDetailsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string TitleField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.ContactDetails ContactDetails {
            get {
                return this.ContactDetailsField;
            }
            set {
                if ((object.ReferenceEquals(this.ContactDetailsField, value) != true)) {
                    this.ContactDetailsField = value;
                    this.RaisePropertyChanged("ContactDetails");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string FirstName {
            get {
                return this.FirstNameField;
            }
            set {
                if ((object.ReferenceEquals(this.FirstNameField, value) != true)) {
                    this.FirstNameField = value;
                    this.RaisePropertyChanged("FirstName");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Id {
            get {
                return this.IdField;
            }
            set {
                if ((this.IdField.Equals(value) != true)) {
                    this.IdField = value;
                    this.RaisePropertyChanged("Id");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string LastName {
            get {
                return this.LastNameField;
            }
            set {
                if ((object.ReferenceEquals(this.LastNameField, value) != true)) {
                    this.LastNameField = value;
                    this.RaisePropertyChanged("LastName");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.PassportDetails PassportDetails {
            get {
                return this.PassportDetailsField;
            }
            set {
                if ((object.ReferenceEquals(this.PassportDetailsField, value) != true)) {
                    this.PassportDetailsField = value;
                    this.RaisePropertyChanged("PassportDetails");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Title {
            get {
                return this.TitleField;
            }
            set {
                if ((object.ReferenceEquals(this.TitleField, value) != true)) {
                    this.TitleField = value;
                    this.RaisePropertyChanged("Title");
                }
            }
        }
        
        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.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ContactDetails", Namespace="http://schemas.datacontract.org/2004/07/Ink.CandidateTest")]
    [System.SerializableAttribute()]
    public partial class ContactDetails : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string EmailField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string PhoneField;
        
        [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 Email {
            get {
                return this.EmailField;
            }
            set {
                if ((object.ReferenceEquals(this.EmailField, value) != true)) {
                    this.EmailField = value;
                    this.RaisePropertyChanged("Email");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Phone {
            get {
                return this.PhoneField;
            }
            set {
                if ((object.ReferenceEquals(this.PhoneField, value) != true)) {
                    this.PhoneField = value;
                    this.RaisePropertyChanged("Phone");
                }
            }
        }
        
        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.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="PassportDetails", Namespace="http://schemas.datacontract.org/2004/07/Ink.CandidateTest")]
    [System.SerializableAttribute()]
    public partial class PassportDetails : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string NationalityField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string PassportNumberField;
        
        [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 Nationality {
            get {
                return this.NationalityField;
            }
            set {
                if ((object.ReferenceEquals(this.NationalityField, value) != true)) {
                    this.NationalityField = value;
                    this.RaisePropertyChanged("Nationality");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string PassportNumber {
            get {
                return this.PassportNumberField;
            }
            set {
                if ((object.ReferenceEquals(this.PassportNumberField, value) != true)) {
                    this.PassportNumberField = value;
                    this.RaisePropertyChanged("PassportNumber");
                }
            }
        }
        
        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.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="BookingResponse", Namespace="http://schemas.datacontract.org/2004/07/Ink.CandidateTest")]
    [System.SerializableAttribute()]
    public partial class BookingResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        private System.Guid BookingReferenceField;
        
        private ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.BookingSummary BookingSummaryField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public System.Guid BookingReference {
            get {
                return this.BookingReferenceField;
            }
            set {
                if ((this.BookingReferenceField.Equals(value) != true)) {
                    this.BookingReferenceField = value;
                    this.RaisePropertyChanged("BookingReference");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.BookingSummary BookingSummary {
            get {
                return this.BookingSummaryField;
            }
            set {
                if ((object.ReferenceEquals(this.BookingSummaryField, value) != true)) {
                    this.BookingSummaryField = value;
                    this.RaisePropertyChanged("BookingSummary");
                }
            }
        }
        
        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.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="BookingSummary", Namespace="http://schemas.datacontract.org/2004/07/Ink.CandidateTest")]
    [System.SerializableAttribute()]
    public partial class BookingSummary : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        private decimal AmountTotalField;
        
        private string CurrencyCodeField;
        
        private System.Collections.Generic.List<ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.PaxFee> PassengerFeeBreakdownField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public decimal AmountTotal {
            get {
                return this.AmountTotalField;
            }
            set {
                if ((this.AmountTotalField.Equals(value) != true)) {
                    this.AmountTotalField = value;
                    this.RaisePropertyChanged("AmountTotal");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public string CurrencyCode {
            get {
                return this.CurrencyCodeField;
            }
            set {
                if ((object.ReferenceEquals(this.CurrencyCodeField, value) != true)) {
                    this.CurrencyCodeField = value;
                    this.RaisePropertyChanged("CurrencyCode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public System.Collections.Generic.List<ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.PaxFee> PassengerFeeBreakdown {
            get {
                return this.PassengerFeeBreakdownField;
            }
            set {
                if ((object.ReferenceEquals(this.PassengerFeeBreakdownField, value) != true)) {
                    this.PassengerFeeBreakdownField = value;
                    this.RaisePropertyChanged("PassengerFeeBreakdown");
                }
            }
        }
        
        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.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="PaxFee", Namespace="http://schemas.datacontract.org/2004/07/Ink.CandidateTest")]
    [System.SerializableAttribute()]
    public partial class PaxFee : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        private decimal AmountField;
        
        private string CurrencyCodeField;
        
        private int IdField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public decimal Amount {
            get {
                return this.AmountField;
            }
            set {
                if ((this.AmountField.Equals(value) != true)) {
                    this.AmountField = value;
                    this.RaisePropertyChanged("Amount");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public string CurrencyCode {
            get {
                return this.CurrencyCodeField;
            }
            set {
                if ((object.ReferenceEquals(this.CurrencyCodeField, value) != true)) {
                    this.CurrencyCodeField = value;
                    this.RaisePropertyChanged("CurrencyCode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public int Id {
            get {
                return this.IdField;
            }
            set {
                if ((this.IdField.Equals(value) != true)) {
                    this.IdField = value;
                    this.RaisePropertyChanged("Id");
                }
            }
        }
        
        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.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SavePaxDetailsRequest", Namespace="http://schemas.datacontract.org/2004/07/Ink.CandidateTest")]
    [System.SerializableAttribute()]
    public partial class SavePaxDetailsRequest : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Collections.Generic.List<ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Pax> PassengersField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.Generic.List<ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.Pax> Passengers {
            get {
                return this.PassengersField;
            }
            set {
                if ((object.ReferenceEquals(this.PassengersField, value) != true)) {
                    this.PassengersField = value;
                    this.RaisePropertyChanged("Passengers");
                }
            }
        }
        
        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.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SavePaxDetailsResponse", Namespace="http://schemas.datacontract.org/2004/07/Ink.CandidateTest")]
    [System.SerializableAttribute()]
    public partial class SavePaxDetailsResponse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.BookingSummary BookingSummaryField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.BookingSummary BookingSummary {
            get {
                return this.BookingSummaryField;
            }
            set {
                if ((object.ReferenceEquals(this.BookingSummaryField, value) != true)) {
                    this.BookingSummaryField = value;
                    this.RaisePropertyChanged("BookingSummary");
                }
            }
        }
        
        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="ThirdPartyBookingServiceReference.IBooking")]
    public interface IBooking {
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IBooking/GetAvailability", ReplyAction="http://tempuri.org/IBooking/GetAvailabilityResponse")]
        ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.AvailabilityResponse GetAvailability(ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.AvailabilityRequest request);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IBooking/CreateNewBooking", ReplyAction="http://tempuri.org/IBooking/CreateNewBookingResponse")]
        ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.BookingResponse CreateNewBooking(ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.BookingRequest request);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IBooking/SavePaxDetails", ReplyAction="http://tempuri.org/IBooking/SavePaxDetailsResponse")]
        ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.SavePaxDetailsResponse SavePaxDetails(ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.SavePaxDetailsRequest request);
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public interface IBookingChannel : ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.IBooking, System.ServiceModel.IClientChannel {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class BookingClient : System.ServiceModel.ClientBase<ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.IBooking>, ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.IBooking {
        
        public BookingClient() {
        }
        
        public BookingClient(string endpointConfigurationName) : 
                base(endpointConfigurationName) {
        }
        
        public BookingClient(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public BookingClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public BookingClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        public ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.AvailabilityResponse GetAvailability(ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.AvailabilityRequest request) {
            return base.Channel.GetAvailability(request);
        }
        
        public ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.BookingResponse CreateNewBooking(ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.BookingRequest request) {
            return base.Channel.CreateNewBooking(request);
        }
        
        public ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.SavePaxDetailsResponse SavePaxDetails(ThirdPartyBookingFeature.ThirdPartyBookingServiceReference.SavePaxDetailsRequest request) {
            return base.Channel.SavePaxDetails(request);
        }
    }
}
