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); }
public static void GetAllMeetingsAsyncTEST() { IMeetingManager manager = new MeetingManager(); manager.AllMeetingsRetreived += (o, e) => { Debug.WriteLine("Fin de la requete"); foreach (var m in e.Meetings) { Debug.WriteLine(m.DateTime); } }; manager.GetAllMeetingsAsync(new DateTime(2013,1,2)); }