Click here to Skip to main content
15,896,557 members
Articles / Mobile Apps / Windows Phone 7

Bike In City with Windows Phone 7

Rate me:
Please Sign up or sign in to vote.
4.97/5 (62 votes)
5 Jan 2011CPOL33 min read 111.3K   3.1K   101  
Learn how to build a small mobile application to visualize data from the city bike sharing system. Get the nearest stations, find the number of free bikes, and compute directions to other stations.
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.1
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This code was auto-generated by Microsoft.Silverlight.Phone.ServiceReference, version 3.7.0.0
// 
namespace BikeInCity.RouteService {
    using System.Runtime.Serialization;
    
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RequestBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.MajorRoutesRequest))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.RouteRequest))]
    public partial class RequestBase : object, System.ComponentModel.INotifyPropertyChanged {
        
        private Microsoft.Phone.Controls.Maps.Credentials CredentialsField;
        
        private string CultureField;
        
        private BikeInCity.RouteService.ExecutionOptions ExecutionOptionsField;
        
        private BikeInCity.RouteService.UserProfile UserProfileField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Credentials Credentials {
            get {
                return this.CredentialsField;
            }
            set {
                if ((object.ReferenceEquals(this.CredentialsField, value) != true)) {
                    this.CredentialsField = value;
                    this.RaisePropertyChanged("Credentials");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Culture {
            get {
                return this.CultureField;
            }
            set {
                if ((object.ReferenceEquals(this.CultureField, value) != true)) {
                    this.CultureField = value;
                    this.RaisePropertyChanged("Culture");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.ExecutionOptions ExecutionOptions {
            get {
                return this.ExecutionOptionsField;
            }
            set {
                if ((object.ReferenceEquals(this.ExecutionOptionsField, value) != true)) {
                    this.ExecutionOptionsField = value;
                    this.RaisePropertyChanged("ExecutionOptions");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.UserProfile UserProfile {
            get {
                return this.UserProfileField;
            }
            set {
                if ((object.ReferenceEquals(this.UserProfileField, value) != true)) {
                    this.UserProfileField = value;
                    this.RaisePropertyChanged("UserProfile");
                }
            }
        }
        
        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="ExecutionOptions", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class ExecutionOptions : object, System.ComponentModel.INotifyPropertyChanged {
        
        private bool SuppressFaultsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool SuppressFaults {
            get {
                return this.SuppressFaultsField;
            }
            set {
                if ((this.SuppressFaultsField.Equals(value) != true)) {
                    this.SuppressFaultsField = value;
                    this.RaisePropertyChanged("SuppressFaults");
                }
            }
        }
        
        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="UserProfile", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(Microsoft.Phone.Controls.Maps.Platform.Rectangle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.Circle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.Polygon))]
    public partial class UserProfile : object, System.ComponentModel.INotifyPropertyChanged {
        
        private BikeInCity.RouteService.Heading CurrentHeadingField;
        
        private BikeInCity.RouteService.UserLocation CurrentLocationField;
        
        private BikeInCity.RouteService.DeviceType DeviceTypeField;
        
        private BikeInCity.RouteService.DistanceUnit DistanceUnitField;
        
        private string IPAddressField;
        
        private Microsoft.Phone.Controls.Maps.Platform.ShapeBase MapViewField;
        
        private BikeInCity.RouteService.SizeOfint ScreenSizeField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.Heading CurrentHeading {
            get {
                return this.CurrentHeadingField;
            }
            set {
                if ((object.ReferenceEquals(this.CurrentHeadingField, value) != true)) {
                    this.CurrentHeadingField = value;
                    this.RaisePropertyChanged("CurrentHeading");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.UserLocation CurrentLocation {
            get {
                return this.CurrentLocationField;
            }
            set {
                if ((object.ReferenceEquals(this.CurrentLocationField, value) != true)) {
                    this.CurrentLocationField = value;
                    this.RaisePropertyChanged("CurrentLocation");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.DeviceType DeviceType {
            get {
                return this.DeviceTypeField;
            }
            set {
                if ((this.DeviceTypeField.Equals(value) != true)) {
                    this.DeviceTypeField = value;
                    this.RaisePropertyChanged("DeviceType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.DistanceUnit DistanceUnit {
            get {
                return this.DistanceUnitField;
            }
            set {
                if ((this.DistanceUnitField.Equals(value) != true)) {
                    this.DistanceUnitField = value;
                    this.RaisePropertyChanged("DistanceUnit");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string IPAddress {
            get {
                return this.IPAddressField;
            }
            set {
                if ((object.ReferenceEquals(this.IPAddressField, value) != true)) {
                    this.IPAddressField = value;
                    this.RaisePropertyChanged("IPAddress");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Platform.ShapeBase MapView {
            get {
                return this.MapViewField;
            }
            set {
                if ((object.ReferenceEquals(this.MapViewField, value) != true)) {
                    this.MapViewField = value;
                    this.RaisePropertyChanged("MapView");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.SizeOfint ScreenSize {
            get {
                return this.ScreenSizeField;
            }
            set {
                if ((object.ReferenceEquals(this.ScreenSizeField, value) != true)) {
                    this.ScreenSizeField = value;
                    this.RaisePropertyChanged("ScreenSize");
                }
            }
        }
        
        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="MajorRoutesRequest", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class MajorRoutesRequest : BikeInCity.RouteService.RequestBase {
        
        private BikeInCity.RouteService.Waypoint DestinationField;
        
        private BikeInCity.RouteService.MajorRoutesOptions OptionsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.Waypoint Destination {
            get {
                return this.DestinationField;
            }
            set {
                if ((object.ReferenceEquals(this.DestinationField, value) != true)) {
                    this.DestinationField = value;
                    this.RaisePropertyChanged("Destination");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.MajorRoutesOptions Options {
            get {
                return this.OptionsField;
            }
            set {
                if ((object.ReferenceEquals(this.OptionsField, value) != true)) {
                    this.OptionsField = value;
                    this.RaisePropertyChanged("Options");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RouteRequest", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class RouteRequest : BikeInCity.RouteService.RequestBase {
        
        private BikeInCity.RouteService.RouteOptions OptionsField;
        
        private System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.Waypoint> WaypointsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.RouteOptions Options {
            get {
                return this.OptionsField;
            }
            set {
                if ((object.ReferenceEquals(this.OptionsField, value) != true)) {
                    this.OptionsField = value;
                    this.RaisePropertyChanged("Options");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.Waypoint> Waypoints {
            get {
                return this.WaypointsField;
            }
            set {
                if ((object.ReferenceEquals(this.WaypointsField, value) != true)) {
                    this.WaypointsField = value;
                    this.RaisePropertyChanged("Waypoints");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RouteOptions", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.MajorRoutesOptions))]
    public partial class RouteOptions : object, System.ComponentModel.INotifyPropertyChanged {
        
        private BikeInCity.RouteService.TravelMode ModeField;
        
        private BikeInCity.RouteService.RouteOptimization OptimizationField;
        
        private BikeInCity.RouteService.RoutePathType RoutePathTypeField;
        
        private BikeInCity.RouteService.TrafficUsage TrafficUsageField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.TravelMode Mode {
            get {
                return this.ModeField;
            }
            set {
                if ((this.ModeField.Equals(value) != true)) {
                    this.ModeField = value;
                    this.RaisePropertyChanged("Mode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.RouteOptimization Optimization {
            get {
                return this.OptimizationField;
            }
            set {
                if ((this.OptimizationField.Equals(value) != true)) {
                    this.OptimizationField = value;
                    this.RaisePropertyChanged("Optimization");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.RoutePathType RoutePathType {
            get {
                return this.RoutePathTypeField;
            }
            set {
                if ((this.RoutePathTypeField.Equals(value) != true)) {
                    this.RoutePathTypeField = value;
                    this.RaisePropertyChanged("RoutePathType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.TrafficUsage TrafficUsage {
            get {
                return this.TrafficUsageField;
            }
            set {
                if ((this.TrafficUsageField.Equals(value) != true)) {
                    this.TrafficUsageField = value;
                    this.RaisePropertyChanged("TrafficUsage");
                }
            }
        }
        
        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="Waypoint", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.UserLocation))]
    public partial class Waypoint : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string DescriptionField;
        
        private Microsoft.Phone.Controls.Maps.Platform.Location LocationField;
        
        [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 Microsoft.Phone.Controls.Maps.Platform.Location Location {
            get {
                return this.LocationField;
            }
            set {
                if ((object.ReferenceEquals(this.LocationField, value) != true)) {
                    this.LocationField = value;
                    this.RaisePropertyChanged("Location");
                }
            }
        }
        
        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="Heading", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Heading : object, System.ComponentModel.INotifyPropertyChanged {
        
        private double OrientationField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Orientation {
            get {
                return this.OrientationField;
            }
            set {
                if ((this.OrientationField.Equals(value) != true)) {
                    this.OrientationField = value;
                    this.RaisePropertyChanged("Orientation");
                }
            }
        }
        
        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="UserLocation", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class UserLocation : Microsoft.Phone.Controls.Maps.Platform.Location, System.ComponentModel.INotifyPropertyChanged {
        
        private BikeInCity.RouteService.Confidence ConfidenceField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.Confidence Confidence {
            get {
                return this.ConfidenceField;
            }
            set {
                if ((this.ConfidenceField.Equals(value) != true)) {
                    this.ConfidenceField = value;
                    this.RaisePropertyChanged("Confidence");
                }
            }
        }
        
        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="SizeOfint", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class SizeOfint : object, System.ComponentModel.INotifyPropertyChanged {
        
        private int HeightField;
        
        private int WidthField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Height {
            get {
                return this.HeightField;
            }
            set {
                if ((this.HeightField.Equals(value) != true)) {
                    this.HeightField = value;
                    this.RaisePropertyChanged("Height");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Width {
            get {
                return this.WidthField;
            }
            set {
                if ((this.WidthField.Equals(value) != true)) {
                    this.WidthField = value;
                    this.RaisePropertyChanged("Width");
                }
            }
        }
        
        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="Circle", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.UserLocation))]
    public partial class Circle : Microsoft.Phone.Controls.Maps.Platform.ShapeBase, System.ComponentModel.INotifyPropertyChanged {
        
        private Microsoft.Phone.Controls.Maps.Platform.Location CenterField;
        
        private BikeInCity.RouteService.DistanceUnit DistanceUnitField;
        
        private double RadiusField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Platform.Location Center {
            get {
                return this.CenterField;
            }
            set {
                if ((object.ReferenceEquals(this.CenterField, value) != true)) {
                    this.CenterField = value;
                    this.RaisePropertyChanged("Center");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.DistanceUnit DistanceUnit {
            get {
                return this.DistanceUnitField;
            }
            set {
                if ((this.DistanceUnitField.Equals(value) != true)) {
                    this.DistanceUnitField = value;
                    this.RaisePropertyChanged("DistanceUnit");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Radius {
            get {
                return this.RadiusField;
            }
            set {
                if ((this.RadiusField.Equals(value) != true)) {
                    this.RadiusField = value;
                    this.RaisePropertyChanged("Radius");
                }
            }
        }
        
        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="Polygon", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Polygon : Microsoft.Phone.Controls.Maps.Platform.ShapeBase, System.ComponentModel.INotifyPropertyChanged {
        
        private System.Collections.ObjectModel.ObservableCollection<Microsoft.Phone.Controls.Maps.Platform.Location> VerticesField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<Microsoft.Phone.Controls.Maps.Platform.Location> Vertices {
            get {
                return this.VerticesField;
            }
            set {
                if ((object.ReferenceEquals(this.VerticesField, value) != true)) {
                    this.VerticesField = value;
                    this.RaisePropertyChanged("Vertices");
                }
            }
        }
        
        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.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="DeviceType", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum DeviceType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Desktop = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Mobile = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="DistanceUnit", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum DistanceUnit : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Kilometer = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Mile = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Confidence", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum Confidence : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        High = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Medium = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Low = 2,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="GeocodeLocation", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class GeocodeLocation : Microsoft.Phone.Controls.Maps.Platform.Location, System.ComponentModel.INotifyPropertyChanged {
        
        private string CalculationMethodField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string CalculationMethod {
            get {
                return this.CalculationMethodField;
            }
            set {
                if ((object.ReferenceEquals(this.CalculationMethodField, value) != true)) {
                    this.CalculationMethodField = value;
                    this.RaisePropertyChanged("CalculationMethod");
                }
            }
        }
        
        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="MajorRoutesOptions", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class MajorRoutesOptions : BikeInCity.RouteService.RouteOptions {
        
        private bool ReturnRoutesField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool ReturnRoutes {
            get {
                return this.ReturnRoutesField;
            }
            set {
                if ((this.ReturnRoutesField.Equals(value) != true)) {
                    this.ReturnRoutesField = value;
                    this.RaisePropertyChanged("ReturnRoutes");
                }
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="TravelMode", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum TravelMode : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Driving = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Walking = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RouteOptimization", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum RouteOptimization : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        MinimizeTime = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        MinimizeDistance = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RoutePathType", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum RoutePathType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Points = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="TrafficUsage", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum TrafficUsage : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TrafficBasedTime = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TrafficBasedRouteAndTime = 2,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.MajorRoutesResponse))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.RouteResponse))]
    public partial class ResponseBase : object, System.ComponentModel.INotifyPropertyChanged {
        
        private System.Uri BrandLogoUriField;
        
        private BikeInCity.RouteService.ResponseSummary ResponseSummaryField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Uri BrandLogoUri {
            get {
                return this.BrandLogoUriField;
            }
            set {
                if ((object.ReferenceEquals(this.BrandLogoUriField, value) != true)) {
                    this.BrandLogoUriField = value;
                    this.RaisePropertyChanged("BrandLogoUri");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.ResponseSummary ResponseSummary {
            get {
                return this.ResponseSummaryField;
            }
            set {
                if ((object.ReferenceEquals(this.ResponseSummaryField, value) != true)) {
                    this.ResponseSummaryField = value;
                    this.RaisePropertyChanged("ResponseSummary");
                }
            }
        }
        
        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="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class ResponseSummary : object, System.ComponentModel.INotifyPropertyChanged {
        
        private BikeInCity.RouteService.AuthenticationResultCode AuthenticationResultCodeField;
        
        private string CopyrightField;
        
        private string FaultReasonField;
        
        private BikeInCity.RouteService.ResponseStatusCode StatusCodeField;
        
        private string TraceIdField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.AuthenticationResultCode AuthenticationResultCode {
            get {
                return this.AuthenticationResultCodeField;
            }
            set {
                if ((this.AuthenticationResultCodeField.Equals(value) != true)) {
                    this.AuthenticationResultCodeField = value;
                    this.RaisePropertyChanged("AuthenticationResultCode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Copyright {
            get {
                return this.CopyrightField;
            }
            set {
                if ((object.ReferenceEquals(this.CopyrightField, value) != true)) {
                    this.CopyrightField = value;
                    this.RaisePropertyChanged("Copyright");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string FaultReason {
            get {
                return this.FaultReasonField;
            }
            set {
                if ((object.ReferenceEquals(this.FaultReasonField, value) != true)) {
                    this.FaultReasonField = value;
                    this.RaisePropertyChanged("FaultReason");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.ResponseStatusCode StatusCode {
            get {
                return this.StatusCodeField;
            }
            set {
                if ((this.StatusCodeField.Equals(value) != true)) {
                    this.StatusCodeField = value;
                    this.RaisePropertyChanged("StatusCode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string TraceId {
            get {
                return this.TraceIdField;
            }
            set {
                if ((object.ReferenceEquals(this.TraceIdField, value) != true)) {
                    this.TraceIdField = value;
                    this.RaisePropertyChanged("TraceId");
                }
            }
        }
        
        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="MajorRoutesResponse", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class MajorRoutesResponse : BikeInCity.RouteService.ResponseBase {
        
        private System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.RouteResult> RoutesField;
        
        private System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.Waypoint> StartingPointsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.RouteResult> Routes {
            get {
                return this.RoutesField;
            }
            set {
                if ((object.ReferenceEquals(this.RoutesField, value) != true)) {
                    this.RoutesField = value;
                    this.RaisePropertyChanged("Routes");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.Waypoint> StartingPoints {
            get {
                return this.StartingPointsField;
            }
            set {
                if ((object.ReferenceEquals(this.StartingPointsField, value) != true)) {
                    this.StartingPointsField = value;
                    this.RaisePropertyChanged("StartingPoints");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RouteResponse", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class RouteResponse : BikeInCity.RouteService.ResponseBase {
        
        private BikeInCity.RouteService.RouteResult ResultField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.RouteResult Result {
            get {
                return this.ResultField;
            }
            set {
                if ((object.ReferenceEquals(this.ResultField, value) != true)) {
                    this.ResultField = value;
                    this.RaisePropertyChanged("Result");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RouteResult", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class RouteResult : object, System.ComponentModel.INotifyPropertyChanged {
        
        private System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.RouteLeg> LegsField;
        
        private BikeInCity.RouteService.RoutePath RoutePathField;
        
        private BikeInCity.RouteService.RouteSummary SummaryField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.RouteLeg> Legs {
            get {
                return this.LegsField;
            }
            set {
                if ((object.ReferenceEquals(this.LegsField, value) != true)) {
                    this.LegsField = value;
                    this.RaisePropertyChanged("Legs");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.RoutePath RoutePath {
            get {
                return this.RoutePathField;
            }
            set {
                if ((object.ReferenceEquals(this.RoutePathField, value) != true)) {
                    this.RoutePathField = value;
                    this.RaisePropertyChanged("RoutePath");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.RouteSummary Summary {
            get {
                return this.SummaryField;
            }
            set {
                if ((object.ReferenceEquals(this.SummaryField, value) != true)) {
                    this.SummaryField = value;
                    this.RaisePropertyChanged("Summary");
                }
            }
        }
        
        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.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="AuthenticationResultCode", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum AuthenticationResultCode : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NoCredentials = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ValidCredentials = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        InvalidCredentials = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        CredentialsExpired = 4,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NotAuthorized = 7,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseStatusCode", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum ResponseStatusCode : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Success = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BadRequest = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ServerError = 2,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RoutePath", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class RoutePath : object, System.ComponentModel.INotifyPropertyChanged {
        
        private System.Collections.ObjectModel.ObservableCollection<Microsoft.Phone.Controls.Maps.Platform.Location> PointsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<Microsoft.Phone.Controls.Maps.Platform.Location> Points {
            get {
                return this.PointsField;
            }
            set {
                if ((object.ReferenceEquals(this.PointsField, value) != true)) {
                    this.PointsField = value;
                    this.RaisePropertyChanged("Points");
                }
            }
        }
        
        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="RouteSummary", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.UserLocation))]
    public partial class RouteSummary : object, System.ComponentModel.INotifyPropertyChanged {
        
        private Microsoft.Phone.Controls.Maps.Platform.Rectangle BoundingRectangleField;
        
        private double DistanceField;
        
        private long TimeInSecondsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Platform.Rectangle BoundingRectangle {
            get {
                return this.BoundingRectangleField;
            }
            set {
                if ((object.ReferenceEquals(this.BoundingRectangleField, value) != true)) {
                    this.BoundingRectangleField = value;
                    this.RaisePropertyChanged("BoundingRectangle");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Distance {
            get {
                return this.DistanceField;
            }
            set {
                if ((this.DistanceField.Equals(value) != true)) {
                    this.DistanceField = value;
                    this.RaisePropertyChanged("Distance");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public long TimeInSeconds {
            get {
                return this.TimeInSecondsField;
            }
            set {
                if ((this.TimeInSecondsField.Equals(value) != true)) {
                    this.TimeInSecondsField = value;
                    this.RaisePropertyChanged("TimeInSeconds");
                }
            }
        }
        
        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="RouteLeg", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.UserLocation))]
    public partial class RouteLeg : object, System.ComponentModel.INotifyPropertyChanged {
        
        private Microsoft.Phone.Controls.Maps.Platform.Location ActualEndField;
        
        private Microsoft.Phone.Controls.Maps.Platform.Location ActualStartField;
        
        private System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.ItineraryItem> ItineraryField;
        
        private BikeInCity.RouteService.RouteSummary SummaryField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Platform.Location ActualEnd {
            get {
                return this.ActualEndField;
            }
            set {
                if ((object.ReferenceEquals(this.ActualEndField, value) != true)) {
                    this.ActualEndField = value;
                    this.RaisePropertyChanged("ActualEnd");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Platform.Location ActualStart {
            get {
                return this.ActualStartField;
            }
            set {
                if ((object.ReferenceEquals(this.ActualStartField, value) != true)) {
                    this.ActualStartField = value;
                    this.RaisePropertyChanged("ActualStart");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.ItineraryItem> Itinerary {
            get {
                return this.ItineraryField;
            }
            set {
                if ((object.ReferenceEquals(this.ItineraryField, value) != true)) {
                    this.ItineraryField = value;
                    this.RaisePropertyChanged("Itinerary");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.RouteSummary Summary {
            get {
                return this.SummaryField;
            }
            set {
                if ((object.ReferenceEquals(this.SummaryField, value) != true)) {
                    this.SummaryField = value;
                    this.RaisePropertyChanged("Summary");
                }
            }
        }
        
        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="ItineraryItem", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(BikeInCity.RouteService.UserLocation))]
    public partial class ItineraryItem : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string CompassDirectionField;
        
        private System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.ItineraryItemHint> HintsField;
        
        private Microsoft.Phone.Controls.Maps.Platform.Location LocationField;
        
        private BikeInCity.RouteService.ManeuverType ManeuverTypeField;
        
        private BikeInCity.RouteService.RouteSummary SummaryField;
        
        private string TextField;
        
        private System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.ItineraryItemWarning> WarningsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string CompassDirection {
            get {
                return this.CompassDirectionField;
            }
            set {
                if ((object.ReferenceEquals(this.CompassDirectionField, value) != true)) {
                    this.CompassDirectionField = value;
                    this.RaisePropertyChanged("CompassDirection");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.ItineraryItemHint> Hints {
            get {
                return this.HintsField;
            }
            set {
                if ((object.ReferenceEquals(this.HintsField, value) != true)) {
                    this.HintsField = value;
                    this.RaisePropertyChanged("Hints");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public Microsoft.Phone.Controls.Maps.Platform.Location Location {
            get {
                return this.LocationField;
            }
            set {
                if ((object.ReferenceEquals(this.LocationField, value) != true)) {
                    this.LocationField = value;
                    this.RaisePropertyChanged("Location");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.ManeuverType ManeuverType {
            get {
                return this.ManeuverTypeField;
            }
            set {
                if ((this.ManeuverTypeField.Equals(value) != true)) {
                    this.ManeuverTypeField = value;
                    this.RaisePropertyChanged("ManeuverType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.RouteSummary Summary {
            get {
                return this.SummaryField;
            }
            set {
                if ((object.ReferenceEquals(this.SummaryField, value) != true)) {
                    this.SummaryField = value;
                    this.RaisePropertyChanged("Summary");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Text {
            get {
                return this.TextField;
            }
            set {
                if ((object.ReferenceEquals(this.TextField, value) != true)) {
                    this.TextField = value;
                    this.RaisePropertyChanged("Text");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.ObjectModel.ObservableCollection<BikeInCity.RouteService.ItineraryItemWarning> Warnings {
            get {
                return this.WarningsField;
            }
            set {
                if ((object.ReferenceEquals(this.WarningsField, value) != true)) {
                    this.WarningsField = value;
                    this.RaisePropertyChanged("Warnings");
                }
            }
        }
        
        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="ItineraryItemHint", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class ItineraryItemHint : object, System.ComponentModel.INotifyPropertyChanged {
        
        private BikeInCity.RouteService.ItineraryItemHintType HintTypeField;
        
        private string TextField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.ItineraryItemHintType HintType {
            get {
                return this.HintTypeField;
            }
            set {
                if ((this.HintTypeField.Equals(value) != true)) {
                    this.HintTypeField = value;
                    this.RaisePropertyChanged("HintType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Text {
            get {
                return this.TextField;
            }
            set {
                if ((object.ReferenceEquals(this.TextField, value) != true)) {
                    this.TextField = value;
                    this.RaisePropertyChanged("Text");
                }
            }
        }
        
        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.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ManeuverType", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum ManeuverType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Unknown = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        DepartStart = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        DepartIntermediateStop = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        DepartIntermediateStopReturning = 4,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ArriveFinish = 5,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ArriveIntermediateStop = 6,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnLeft = 7,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnRight = 8,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnBack = 9,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        UTurn = 10,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnToStayLeft = 11,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnToStayRight = 12,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearLeft = 13,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearRight = 14,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepToStayLeft = 15,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepToStayRight = 16,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepToStayStraight = 17,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepLeft = 18,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepRight = 19,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepStraight = 20,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Take = 21,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TakeRampLeft = 22,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TakeRampRight = 23,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TakeRampStraight = 24,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepOnrampLeft = 25,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepOnrampRight = 26,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        KeepOnrampStraight = 27,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Merge = 28,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Continue = 29,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RoadNameChange = 30,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        EnterRoundabout = 31,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ExitRoundabout = 32,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnRightThenTurnRight = 33,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnRightThenTurnLeft = 34,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnRightThenBearRight = 35,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnRightThenBearLeft = 36,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnLeftThenTurnLeft = 37,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnLeftThenTurnRight = 38,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnLeftThenBearLeft = 39,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnLeftThenBearRight = 40,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearRightThenTurnRight = 41,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearRightThenTurnLeft = 42,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearRightThenBearRight = 43,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearRightThenBearLeft = 44,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearLeftThenTurnLeft = 45,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearLeftThenTurnRight = 46,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearLeftThenBearRight = 47,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearLeftThenBearLeft = 48,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RampThenHighwayRight = 49,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RampThenHighwayLeft = 50,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RampToHighwayStraight = 51,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        EnterThenExitRoundabout = 52,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearThenMerge = 53,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TurnThenMerge = 54,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BearThenKeep = 55,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Transfer = 56,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Wait = 57,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TakeTransit = 58,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Walk = 59,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ItineraryItemWarning", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public partial class ItineraryItemWarning : object, System.ComponentModel.INotifyPropertyChanged {
        
        private BikeInCity.RouteService.ItineraryWarningSeverity SeverityField;
        
        private string TextField;
        
        private BikeInCity.RouteService.ItineraryWarningType WarningTypeField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.ItineraryWarningSeverity Severity {
            get {
                return this.SeverityField;
            }
            set {
                if ((this.SeverityField.Equals(value) != true)) {
                    this.SeverityField = value;
                    this.RaisePropertyChanged("Severity");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Text {
            get {
                return this.TextField;
            }
            set {
                if ((object.ReferenceEquals(this.TextField, value) != true)) {
                    this.TextField = value;
                    this.RaisePropertyChanged("Text");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public BikeInCity.RouteService.ItineraryWarningType WarningType {
            get {
                return this.WarningTypeField;
            }
            set {
                if ((this.WarningTypeField.Equals(value) != true)) {
                    this.WarningTypeField = value;
                    this.RaisePropertyChanged("WarningType");
                }
            }
        }
        
        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.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ItineraryItemHintType", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum ItineraryItemHintType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        PreviousIntersection = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NextIntersection = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Landmark = 2,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ItineraryWarningSeverity", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum ItineraryWarningSeverity : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        LowImpact = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Minor = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Moderate = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Serious = 4,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ItineraryWarningType", Namespace="http://dev.virtualearth.net/webservices/v1/route")]
    public enum ItineraryWarningType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Accident = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        AdminDivisionChange = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BlockedRoad = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        CheckTimetable = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Congestion = 4,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        CountryChange = 5,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        DisabledVehicle = 6,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        GateAccess = 7,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        GetOffTransit = 8,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        GetOnTransit = 9,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        IllegalUTurn = 10,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        MassTransit = 11,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Miscellaneous = 12,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NoIncident = 13,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 14,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Other = 15,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        OtherNews = 16,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        OtherTrafficIncidents = 17,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        PlannedEvent = 18,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        PrivateRoad = 19,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RestrictedTurn = 20,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RoadClosures = 21,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        RoadHazard = 22,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ScheduledConstruction = 23,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        SeasonalClosures = 24,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Tollbooth = 25,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TollRoad = 26,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        TrafficFlow = 27,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        UnpavedRoad = 28,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        UnscheduledConstruction = 29,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Weather = 30,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace="http://dev.virtualearth.net/webservices/v1/route/contracts", ConfigurationName="RouteService.IRouteService")]
    public interface IRouteService {
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://dev.virtualearth.net/webservices/v1/route/contracts/IRouteService/Calculat" +
            "eRoute", ReplyAction="http://dev.virtualearth.net/webservices/v1/route/contracts/IRouteService/Calculat" +
            "eRouteResponse")]
        [System.ServiceModel.FaultContractAttribute(typeof(BikeInCity.RouteService.ResponseSummary), Action="http://dev.virtualearth.net/webservices/v1/route/contracts/IRouteService/Calculat" +
            "eRouteResponseSummaryFault", Name="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
        System.IAsyncResult BeginCalculateRoute(BikeInCity.RouteService.RouteRequest request, System.AsyncCallback callback, object asyncState);
        
        BikeInCity.RouteService.RouteResponse EndCalculateRoute(System.IAsyncResult result);
        
        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://dev.virtualearth.net/webservices/v1/route/contracts/IRouteService/Calculat" +
            "eRoutesFromMajorRoads", ReplyAction="http://dev.virtualearth.net/webservices/v1/route/contracts/IRouteService/Calculat" +
            "eRoutesFromMajorRoadsResponse")]
        [System.ServiceModel.FaultContractAttribute(typeof(BikeInCity.RouteService.ResponseSummary), Action="http://dev.virtualearth.net/webservices/v1/route/contracts/IRouteService/Calculat" +
            "eRoutesFromMajorRoadsResponseSummaryFault", Name="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
        System.IAsyncResult BeginCalculateRoutesFromMajorRoads(BikeInCity.RouteService.MajorRoutesRequest request, System.AsyncCallback callback, object asyncState);
        
        BikeInCity.RouteService.MajorRoutesResponse EndCalculateRoutesFromMajorRoads(System.IAsyncResult result);
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public interface IRouteServiceChannel : BikeInCity.RouteService.IRouteService, System.ServiceModel.IClientChannel {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class CalculateRouteCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public CalculateRouteCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public BikeInCity.RouteService.RouteResponse Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((BikeInCity.RouteService.RouteResponse)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class CalculateRoutesFromMajorRoadsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        public CalculateRoutesFromMajorRoadsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        public BikeInCity.RouteService.MajorRoutesResponse Result {
            get {
                base.RaiseExceptionIfNecessary();
                return ((BikeInCity.RouteService.MajorRoutesResponse)(this.results[0]));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class RouteServiceClient : System.ServiceModel.ClientBase<BikeInCity.RouteService.IRouteService>, BikeInCity.RouteService.IRouteService {
        
        private BeginOperationDelegate onBeginCalculateRouteDelegate;
        
        private EndOperationDelegate onEndCalculateRouteDelegate;
        
        private System.Threading.SendOrPostCallback onCalculateRouteCompletedDelegate;
        
        private BeginOperationDelegate onBeginCalculateRoutesFromMajorRoadsDelegate;
        
        private EndOperationDelegate onEndCalculateRoutesFromMajorRoadsDelegate;
        
        private System.Threading.SendOrPostCallback onCalculateRoutesFromMajorRoadsCompletedDelegate;
        
        private BeginOperationDelegate onBeginOpenDelegate;
        
        private EndOperationDelegate onEndOpenDelegate;
        
        private System.Threading.SendOrPostCallback onOpenCompletedDelegate;
        
        private BeginOperationDelegate onBeginCloseDelegate;
        
        private EndOperationDelegate onEndCloseDelegate;
        
        private System.Threading.SendOrPostCallback onCloseCompletedDelegate;
        
        public RouteServiceClient() {
        }
        
        public RouteServiceClient(string endpointConfigurationName) : 
                base(endpointConfigurationName) {
        }
        
        public RouteServiceClient(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public RouteServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public RouteServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        public System.Net.CookieContainer CookieContainer {
            get {
                System.ServiceModel.Channels.IHttpCookieContainerManager httpCookieContainerManager = this.InnerChannel.GetProperty<System.ServiceModel.Channels.IHttpCookieContainerManager>();
                if ((httpCookieContainerManager != null)) {
                    return httpCookieContainerManager.CookieContainer;
                }
                else {
                    return null;
                }
            }
            set {
                System.ServiceModel.Channels.IHttpCookieContainerManager httpCookieContainerManager = this.InnerChannel.GetProperty<System.ServiceModel.Channels.IHttpCookieContainerManager>();
                if ((httpCookieContainerManager != null)) {
                    httpCookieContainerManager.CookieContainer = value;
                }
                else {
                    throw new System.InvalidOperationException("Unable to set the CookieContainer. Please make sure the binding contains an HttpC" +
                            "ookieContainerBindingElement.");
                }
            }
        }
        
        public event System.EventHandler<CalculateRouteCompletedEventArgs> CalculateRouteCompleted;
        
        public event System.EventHandler<CalculateRoutesFromMajorRoadsCompletedEventArgs> CalculateRoutesFromMajorRoadsCompleted;
        
        public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> OpenCompleted;
        
        public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> CloseCompleted;
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult BikeInCity.RouteService.IRouteService.BeginCalculateRoute(BikeInCity.RouteService.RouteRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginCalculateRoute(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        BikeInCity.RouteService.RouteResponse BikeInCity.RouteService.IRouteService.EndCalculateRoute(System.IAsyncResult result) {
            return base.Channel.EndCalculateRoute(result);
        }
        
        private System.IAsyncResult OnBeginCalculateRoute(object[] inValues, System.AsyncCallback callback, object asyncState) {
            BikeInCity.RouteService.RouteRequest request = ((BikeInCity.RouteService.RouteRequest)(inValues[0]));
            return ((BikeInCity.RouteService.IRouteService)(this)).BeginCalculateRoute(request, callback, asyncState);
        }
        
        private object[] OnEndCalculateRoute(System.IAsyncResult result) {
            BikeInCity.RouteService.RouteResponse retVal = ((BikeInCity.RouteService.IRouteService)(this)).EndCalculateRoute(result);
            return new object[] {
                    retVal};
        }
        
        private void OnCalculateRouteCompleted(object state) {
            if ((this.CalculateRouteCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.CalculateRouteCompleted(this, new CalculateRouteCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void CalculateRouteAsync(BikeInCity.RouteService.RouteRequest request) {
            this.CalculateRouteAsync(request, null);
        }
        
        public void CalculateRouteAsync(BikeInCity.RouteService.RouteRequest request, object userState) {
            if ((this.onBeginCalculateRouteDelegate == null)) {
                this.onBeginCalculateRouteDelegate = new BeginOperationDelegate(this.OnBeginCalculateRoute);
            }
            if ((this.onEndCalculateRouteDelegate == null)) {
                this.onEndCalculateRouteDelegate = new EndOperationDelegate(this.OnEndCalculateRoute);
            }
            if ((this.onCalculateRouteCompletedDelegate == null)) {
                this.onCalculateRouteCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnCalculateRouteCompleted);
            }
            base.InvokeAsync(this.onBeginCalculateRouteDelegate, new object[] {
                        request}, this.onEndCalculateRouteDelegate, this.onCalculateRouteCompletedDelegate, userState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        System.IAsyncResult BikeInCity.RouteService.IRouteService.BeginCalculateRoutesFromMajorRoads(BikeInCity.RouteService.MajorRoutesRequest request, System.AsyncCallback callback, object asyncState) {
            return base.Channel.BeginCalculateRoutesFromMajorRoads(request, callback, asyncState);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        BikeInCity.RouteService.MajorRoutesResponse BikeInCity.RouteService.IRouteService.EndCalculateRoutesFromMajorRoads(System.IAsyncResult result) {
            return base.Channel.EndCalculateRoutesFromMajorRoads(result);
        }
        
        private System.IAsyncResult OnBeginCalculateRoutesFromMajorRoads(object[] inValues, System.AsyncCallback callback, object asyncState) {
            BikeInCity.RouteService.MajorRoutesRequest request = ((BikeInCity.RouteService.MajorRoutesRequest)(inValues[0]));
            return ((BikeInCity.RouteService.IRouteService)(this)).BeginCalculateRoutesFromMajorRoads(request, callback, asyncState);
        }
        
        private object[] OnEndCalculateRoutesFromMajorRoads(System.IAsyncResult result) {
            BikeInCity.RouteService.MajorRoutesResponse retVal = ((BikeInCity.RouteService.IRouteService)(this)).EndCalculateRoutesFromMajorRoads(result);
            return new object[] {
                    retVal};
        }
        
        private void OnCalculateRoutesFromMajorRoadsCompleted(object state) {
            if ((this.CalculateRoutesFromMajorRoadsCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.CalculateRoutesFromMajorRoadsCompleted(this, new CalculateRoutesFromMajorRoadsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void CalculateRoutesFromMajorRoadsAsync(BikeInCity.RouteService.MajorRoutesRequest request) {
            this.CalculateRoutesFromMajorRoadsAsync(request, null);
        }
        
        public void CalculateRoutesFromMajorRoadsAsync(BikeInCity.RouteService.MajorRoutesRequest request, object userState) {
            if ((this.onBeginCalculateRoutesFromMajorRoadsDelegate == null)) {
                this.onBeginCalculateRoutesFromMajorRoadsDelegate = new BeginOperationDelegate(this.OnBeginCalculateRoutesFromMajorRoads);
            }
            if ((this.onEndCalculateRoutesFromMajorRoadsDelegate == null)) {
                this.onEndCalculateRoutesFromMajorRoadsDelegate = new EndOperationDelegate(this.OnEndCalculateRoutesFromMajorRoads);
            }
            if ((this.onCalculateRoutesFromMajorRoadsCompletedDelegate == null)) {
                this.onCalculateRoutesFromMajorRoadsCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnCalculateRoutesFromMajorRoadsCompleted);
            }
            base.InvokeAsync(this.onBeginCalculateRoutesFromMajorRoadsDelegate, new object[] {
                        request}, this.onEndCalculateRoutesFromMajorRoadsDelegate, this.onCalculateRoutesFromMajorRoadsCompletedDelegate, userState);
        }
        
        private System.IAsyncResult OnBeginOpen(object[] inValues, System.AsyncCallback callback, object asyncState) {
            return ((System.ServiceModel.ICommunicationObject)(this)).BeginOpen(callback, asyncState);
        }
        
        private object[] OnEndOpen(System.IAsyncResult result) {
            ((System.ServiceModel.ICommunicationObject)(this)).EndOpen(result);
            return null;
        }
        
        private void OnOpenCompleted(object state) {
            if ((this.OpenCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.OpenCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void OpenAsync() {
            this.OpenAsync(null);
        }
        
        public void OpenAsync(object userState) {
            if ((this.onBeginOpenDelegate == null)) {
                this.onBeginOpenDelegate = new BeginOperationDelegate(this.OnBeginOpen);
            }
            if ((this.onEndOpenDelegate == null)) {
                this.onEndOpenDelegate = new EndOperationDelegate(this.OnEndOpen);
            }
            if ((this.onOpenCompletedDelegate == null)) {
                this.onOpenCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnOpenCompleted);
            }
            base.InvokeAsync(this.onBeginOpenDelegate, null, this.onEndOpenDelegate, this.onOpenCompletedDelegate, userState);
        }
        
        private System.IAsyncResult OnBeginClose(object[] inValues, System.AsyncCallback callback, object asyncState) {
            return ((System.ServiceModel.ICommunicationObject)(this)).BeginClose(callback, asyncState);
        }
        
        private object[] OnEndClose(System.IAsyncResult result) {
            ((System.ServiceModel.ICommunicationObject)(this)).EndClose(result);
            return null;
        }
        
        private void OnCloseCompleted(object state) {
            if ((this.CloseCompleted != null)) {
                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
                this.CloseCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
            }
        }
        
        public void CloseAsync() {
            this.CloseAsync(null);
        }
        
        public void CloseAsync(object userState) {
            if ((this.onBeginCloseDelegate == null)) {
                this.onBeginCloseDelegate = new BeginOperationDelegate(this.OnBeginClose);
            }
            if ((this.onEndCloseDelegate == null)) {
                this.onEndCloseDelegate = new EndOperationDelegate(this.OnEndClose);
            }
            if ((this.onCloseCompletedDelegate == null)) {
                this.onCloseCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnCloseCompleted);
            }
            base.InvokeAsync(this.onBeginCloseDelegate, null, this.onEndCloseDelegate, this.onCloseCompletedDelegate, userState);
        }
        
        protected override BikeInCity.RouteService.IRouteService CreateChannel() {
            return new RouteServiceClientChannel(this);
        }
        
        private class RouteServiceClientChannel : ChannelBase<BikeInCity.RouteService.IRouteService>, BikeInCity.RouteService.IRouteService {
            
            public RouteServiceClientChannel(System.ServiceModel.ClientBase<BikeInCity.RouteService.IRouteService> client) : 
                    base(client) {
            }
            
            public System.IAsyncResult BeginCalculateRoute(BikeInCity.RouteService.RouteRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("CalculateRoute", _args, callback, asyncState);
                return _result;
            }
            
            public BikeInCity.RouteService.RouteResponse EndCalculateRoute(System.IAsyncResult result) {
                object[] _args = new object[0];
                BikeInCity.RouteService.RouteResponse _result = ((BikeInCity.RouteService.RouteResponse)(base.EndInvoke("CalculateRoute", _args, result)));
                return _result;
            }
            
            public System.IAsyncResult BeginCalculateRoutesFromMajorRoads(BikeInCity.RouteService.MajorRoutesRequest request, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = request;
                System.IAsyncResult _result = base.BeginInvoke("CalculateRoutesFromMajorRoads", _args, callback, asyncState);
                return _result;
            }
            
            public BikeInCity.RouteService.MajorRoutesResponse EndCalculateRoutesFromMajorRoads(System.IAsyncResult result) {
                object[] _args = new object[0];
                BikeInCity.RouteService.MajorRoutesResponse _result = ((BikeInCity.RouteService.MajorRoutesResponse)(base.EndInvoke("CalculateRoutesFromMajorRoads", _args, result)));
                return _result;
            }
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Junior) OCTO Technology
Czech Republic Czech Republic
Writing software at ITG RFQ-hub.
LinkedIn
Blog
GitHub
Articles at OCTO blog

Comments and Discussions