public void GetAllRoadMapsAsync(DateTime startDate, DateTime endDate, ReferenceMeeting startPosition, ReferenceMeeting endPosition) { if(startDate >= endDate) { Debug.WriteLine("startDate doit être inférieur à endDate"); AllRoadMapsReceived(this, new AllRoadMapReceivedEventArgs() { Error = true, MessageError = "La date de départ doit être strictement inférieure à la date d'arrivée" }); return; } string messageError = string.Empty; List<DateTime> days = new List<DateTime>(); List<RoadMap> roadMaps = new List<RoadMap>(); int countSended = 0; int countReceived = 0; DateTime i = startDate; while (i <= endDate) { days.Add(i); i = i.AddDays(1); } RoadMapReceived += (o, e) => { if (e.Error) { messageError = e.MessageError; } countReceived++; if (!e.Error) roadMaps.Add(e.RoadMap); if (countReceived >= days.Count) { var arg = new AllRoadMapReceivedEventArgs(); if (messageError != string.Empty) { arg.Error = true; arg.MessageError = messageError; } arg.RoadMaps.AddRange(roadMaps.OrderBy(obj=>obj.Date)); AllRoadMapsReceived(this, arg); RoadMapReceived = null; } }; foreach (var item in days) { GetRoadMapAsync(item, startPosition, endPosition); countSended++; } }
private void OnAllRoadMapsReceived(object o, AllRoadMapReceivedEventArgs eAllRoadMapsReceived) { if (eAllRoadMapsReceived.Error) { MessageBox.Show(eAllRoadMapsReceived.MessageError); this.enableInterface(); return; } collection.Items.Clear(); for (int i = 0; i < eAllRoadMapsReceived.RoadMaps.Count; i++) { var roadmap = eAllRoadMapsReceived.RoadMaps[i]; collection.Items.Add(new DateAndPositions(i, roadmap)); } LiveAuthClient auth = new LiveAuthClient("000000004C0E007C"); auth.LoginCompleted += auth_LoginCompleted; auth.LoginAsync(new string[] { "wl.signin", "wl.skydrive_update" }); this.manager.AllRoadMapsReceived = null; this.manager = null; }
public void GetAllRoadMapsAsync(Dictionary<DateTime, KeyValuePair<ReferenceMeeting, ReferenceMeeting>> items) { string messageError = string.Empty; List<RoadMap> roadMaps = new List<RoadMap>(); int countSended = 0; int countReceived = 0; RoadMapReceived += (o, e) => { if (e.Error) { messageError = e.MessageError; } countReceived++; if (!e.Error) roadMaps.Add(e.RoadMap); if (countReceived >= items.Count) { var arg = new AllRoadMapReceivedEventArgs(); if (messageError != string.Empty) { arg.Error = true; arg.MessageError = messageError; } arg.RoadMaps.AddRange(roadMaps.OrderBy(obj => obj.Date)); AllRoadMapsReceived(this, arg); RoadMapReceived = null; } }; for (int j = 0; j < items.Count; j++) { GetRoadMapAsync(items.Keys.ElementAt(j), items.Values.ElementAt(j).Key, items.Values.ElementAt(j).Value); countSended++; } }