public static void GetTripAsyncTEST() { Meeting startMeeting = new Meeting() { Location = new Location() { Latitude = 49.47518, Longitude = 1.091378 } }; Meeting endMeeting = new Meeting() { Location = new Location() { Latitude = 49.4401397705078, Longitude = 1.08940994739532 } }; ITripManager manager = new TripManager(); manager.TripReceived += (o, e) => { Debug.WriteLine("Coucou lol"); }; //manager.GetTripAsync(startMeeting, endMeeting); }
public void GetRoadMapAsync(DateTime date, ReferenceMeeting startPosition, ReferenceMeeting endPosition) { IMeetingManager meetingManager; ITripManager tripManager; RoadMap roadMap = new RoadMap(); meetingManager = new MeetingManager(); tripManager = new TripManager(); roadMap.Date = date; //Lorsque on reçoit tous les RDV géolocalisés meetingManager.AllMeetingsRetreived += (o, eventMeeting) => { if (eventMeeting.Error) { RoadMapReceived(this, new RoadMapReceivedEventArgs(null) { Error = true, MessageError = eventMeeting.MessageError}); meetingManager.AllMeetingsRetreived = null; return; } startPosition.DateTime = eventMeeting.Meetings.FirstOrDefault().DateTime.Date; endPosition.DateTime = eventMeeting.Meetings.FirstOrDefault().DateTime.Date.AddDays(1); //Position de départ roadMap.Meetings.Add(startPosition); //Enregistrement des rendez-vous dans la roadmap roadMap.Meetings.AddRange(eventMeeting.Meetings); //Position d'arrivée roadMap.Meetings.Add(endPosition); //Lorsque on reçoit le chemin complet de la journée tripManager.TripReceived += (o2, eventTrip) => { if (eventTrip.Error) { RoadMapReceived(this, new RoadMapReceivedEventArgs(null) { Error = true, MessageError = "L'adresse de départ ou d'arrivée décrite dans les paramètres de l'application est incorrecte!" }); tripManager.TripReceived = null; return; } roadMap.RouteResult = eventTrip.RouteResult; roadMap.Trips.AddRange(eventTrip.Trips); RoadMapReceived(this, new RoadMapReceivedEventArgs(roadMap)); tripManager.TripReceived = null; }; if (roadMap.ValidMeetings.Count <= 0) { RoadMapReceived(this, new RoadMapReceivedEventArgs(null) { Error = true }); return; } //Calcule du chemin complet de façon asynchrone tripManager.GetTripAsync(roadMap.ValidMeetings); }; //Récupération et vérification des rendez-vous meetingManager.GetAllMeetingsAsync(date); }