Пример #1
0
        public TripFailCollectionDesign()
        {
            Trip t = new Trip(){
                Start = new ReferenceMeeting(DateTime.Now.Date.AddHours(8), null)
                {
                    Subject = "Company Meeting Microsoft 2013"
                },
                End = new ReferenceMeeting(DateTime.Now.Date.AddHours(12), null)
                {
                    Subject = "M. Dupont agence immo"
                }
            };
            Trip t2 = new Trip(){
                Start = new ReferenceMeeting(DateTime.Now.Date.AddHours(14), null)
                {
                    Subject = "RDV3 subject"
                },
                End = new ReferenceMeeting(DateTime.Now.Date.AddHours(15), null)
                {
                    Subject = "RDV4 blabla subject qjpd",
                    
                }
            };

            _items.Add(new TripFailDesign(t));
            _items.Add(new TripFailDesign(t2));
        }
Пример #2
0
        public void GetTripAsync(List<Meeting> meetings)
        {
            if (meetings.Count()<=1)
                return;

            //Initialisation
            var request = new RouteRequest();
            request.Credentials = new Credentials();
            request.Credentials.ApplicationId = BingMapCredential.CREDENTIAL;
            request.Waypoints = new ObservableCollection<Waypoint>();
            foreach (Meeting meeting in meetings)
            {
                if (IsCanceled)
                    return;

                if (meeting.IsLocationFail)
                    continue;
                request.Waypoints.Add(new Waypoint()
                {
                    Location = new Location()
                    {
                        Latitude = meeting.Location.Latitude,
                        Longitude = meeting.Location.Longitude
                    }
                });
            }
            request.Options = new RouteOptions();
            request.Options.RoutePathType = RoutePathType.Points;
            request.UserProfile = new UserProfile();
            request.UserProfile.DistanceUnit = DistanceUnit.Kilometer;
            var service = new RouteServiceClient("BasicHttpBinding_IRouteService");

            //Réponse
            service.CalculateRouteCompleted += (o, e) =>
            {
                if (IsCanceled)
                    return;

                if (e.Error != null || e.Result == null)
                {
                    try
                    {
                        Debug.WriteLine(e.Error.Message);
                    }
                    catch (Exception exception)
                    {
                    }
                    TripReceived(this, new TripReceivedEventArgs(){Error = true});
                    return;
                }
                List<Trip> trips = new List<Trip>();
                var legs = e.Result.Result.Legs;
                var countRoutePath = e.Result.Result.RoutePath.Points.Count;
                int lastIndex = 0;
                var count = legs.Count;

                for (int i = 0; i < count; i++)
                {
                    if (IsCanceled)
                        return;

                    var leg = legs[i];
                    Trip trip = new Trip();
                    meetings[i].Location = leg.ActualStart;
                    meetings[i + 1].Location = leg.ActualEnd;
                    trip.Start = meetings[i];
                    trip.End = meetings[i + 1];
                    trip.Duration = leg.Summary.TimeInSeconds / 60;
                    trip.Distance = leg.Summary.Distance;

                    while (lastIndex < countRoutePath)
                    {
                        if (IsCanceled)
                            return;
                        Location point = e.Result.Result.RoutePath.Points[lastIndex];
                        
                        if (Math.Round(trip.End.Location.Latitude, 5) == Math.Round(point.Latitude, 5) &&
                            Math.Round(trip.End.Location.Longitude, 5) == Math.Round(point.Longitude, 5))
                        {
                            break;
                        }
                        trip.RoutePath.Add(point);
                        lastIndex++;
                    }
                    trips.Add(trip);
                }

                TripReceived(this, new TripReceivedEventArgs(trips, e.Result.Result) );
            };

            //Appel
            service.CalculateRouteAsync(request);

            if (IsCanceled)
                return;
        }
Пример #3
0
 public TripFailDesign(Trip trip)
 {
     _trip = trip;
 }