/// <summary>
        /// Metoda odpytująca WebService o nowe zdarzenia w przedziale czasowym określonym w jako argumenty metody.
        /// </summary>
        /// <param name="timeBefore">Początek przedziału czasowego.</param>
        /// <param name="timeNow">Koniec przedziału czasowego.</param>
        /// <returns></returns>
        private async void AskAboutNewEventsTask(DateTime timeBefore, DateTime timeNow)
        {
            // Obiekt metody WebServisu pozwalająca zainicjalizować żądanie pobrania rezerwacji WYKONANYMI między określonym czasem.
            _bookingsRequest = new GetBookingsCreatedBetweenDatesRequest()
            {
                BeginTime = timeBefore,
                EndTime = timeNow,
                SenderId = LoginToWebServiceData.WebServiceId,
                Token = LoginToWebServiceData.WebServiceToken
            };

            // Obiekt metody WebServisu przyjmujący odpowiedź na zapytanie o rezerwację sal, 
            // wykonane w podanym przedziale czasowym.
            var bookingsResponse = await WebServiceConnection.
                SendPost<GetBookingsCreatedBetweenDatesRequest, GetBookingsCreatedBetweenDatesResponse>(_bookingsRequest, "booking/dates");
            if (bookingsResponse != null)
            {
                if (bookingsResponse.Status == 0)
                {
                    foreach (var booking in bookingsResponse.BookingsList)
                    {
                        Logs.WriteErrorLog("Ilosc rezerwacji w booking: " + booking.GuestList.Count.ToString());
                        foreach (var guest in booking.GuestList)
                        {
                            var userInfo =
                            await WebServiceConnection.SendGet<GetUserInfoResponse>("user/" + guest.UserId + "/info");
                            if (userInfo == null) Logs.WriteErrorLog("Nie odzyskalem odpowiedzi od WS");
                            if (userInfo.Email.EndsWith("@gmail.com") == false) continue;
                            Logs.WriteErrorLog("guest.BookingTitle: " + guest.BookingTitle);
                            Logs.WriteErrorLog("guest.userId: " + guest.UserId.ToString());
                            
                            var userItem = _usersList.FirstOrDefault(u => u.UserId == guest.UserId);

                            if (userItem == null)
                            {
                                Logs.WriteErrorLog("Uzytkownika nie ma w kolejce, ani na liscie. Dodaje go...");
                                await AddNewUser(guest);
                            }
                            Logs.WriteErrorLog("Dodalem uzytkownika, tutaj sie zacinam.");
                            userItem = _usersList.FirstOrDefault(u => u.UserId == guest.UserId);
                            AddNewEvent(guest, userItem);
                            await UpdateAllCalendars();
                        }
                        //Dodaj Kalendarz i wywołaj metodę booking dla kalendarza użytkownika.
                        //booking.GuestList[0].Confirmation
                        //Logs.WriteErrorLog(booking.Title + ": " + booking.Description);
                    }
                    await UpdateAllCalendars();
                }
                else
                {
                    Logs.WriteErrorLog(bookingsResponse.Status + ": " + bookingsResponse.Message);
                }
            }
            else
            {
                Logs.WriteErrorLog("Nie udalo sie otrzymac odpowiedzi od WebService'u");
            }
        }
        /// <summary>
        /// Metoda odpytująca WebService o nowe zdarzenia w przedziale czasowym określonym w jako argumenty metody.
        /// </summary>
        /// <param name="timeBefore">Początek przedziału czasowego.</param>
        /// <param name="timeNow">Koniec przedziału czasowego.</param>
        /// <returns></returns>
        private async void AskAboutNewEventsTask(DateTime timeBefore, DateTime timeNow)
        {
            // Obiekt metody WebServisu pozwalająca zainicjalizować żądanie pobrania rezerwacji WYKONANYMI między określonym czasem.
            _bookingsRequest = new GetBookingsCreatedBetweenDatesRequest()
            {
                BeginTime = timeBefore,
                EndTime   = timeNow,
                SenderId  = LoginToWebServiceData.WebServiceId,
                Token     = LoginToWebServiceData.WebServiceToken
            };

            // Obiekt metody WebServisu przyjmujący odpowiedź na zapytanie o rezerwację sal,
            // wykonane w podanym przedziale czasowym.
            var bookingsResponse = await WebServiceConnection.
                                   SendPost <GetBookingsCreatedBetweenDatesRequest, GetBookingsCreatedBetweenDatesResponse>(_bookingsRequest, "booking/dates");

            if (bookingsResponse != null)
            {
                if (bookingsResponse.Status == 0)
                {
                    foreach (var booking in bookingsResponse.BookingsList)
                    {
                        Logs.WriteErrorLog("Ilosc rezerwacji w booking: " + booking.GuestList.Count.ToString());
                        foreach (var guest in booking.GuestList)
                        {
                            var userInfo =
                                await WebServiceConnection.SendGet <GetUserInfoResponse>("user/" + guest.UserId + "/info");

                            if (userInfo == null)
                            {
                                Logs.WriteErrorLog("Nie odzyskalem odpowiedzi od WS");
                            }
                            if (userInfo.Email.EndsWith("@gmail.com") == false)
                            {
                                continue;
                            }
                            Logs.WriteErrorLog("guest.BookingTitle: " + guest.BookingTitle);
                            Logs.WriteErrorLog("guest.userId: " + guest.UserId.ToString());

                            var userItem = _usersList.FirstOrDefault(u => u.UserId == guest.UserId);

                            if (userItem == null)
                            {
                                Logs.WriteErrorLog("Uzytkownika nie ma w kolejce, ani na liscie. Dodaje go...");
                                await AddNewUser(guest);
                            }
                            Logs.WriteErrorLog("Dodalem uzytkownika, tutaj sie zacinam.");
                            userItem = _usersList.FirstOrDefault(u => u.UserId == guest.UserId);
                            AddNewEvent(guest, userItem);
                            await UpdateAllCalendars();
                        }
                        //Dodaj Kalendarz i wywołaj metodę booking dla kalendarza użytkownika.
                        //booking.GuestList[0].Confirmation
                        //Logs.WriteErrorLog(booking.Title + ": " + booking.Description);
                    }
                    await UpdateAllCalendars();
                }
                else
                {
                    Logs.WriteErrorLog(bookingsResponse.Status + ": " + bookingsResponse.Message);
                }
            }
            else
            {
                Logs.WriteErrorLog("Nie udalo sie otrzymac odpowiedzi od WebService'u");
            }
        }