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++;
            }
        }