/// <summary> /// Metoda pobiera z WebServisu informacje o użytkowniku, którego nie ma w Usłudze. /// </summary> /// <param name="guest">Parametr z którego pobierane są informacje, którego użytkownika dodać.</param> private async Task AddNewUser(SimpleBookingUser guest) { Logs.WriteErrorLog("AddNewUser"); Logs.WriteErrorLog("guest.UserId: " + guest.UserId.ToString() + ", Booking title: " + guest.BookingTitle); GetUserInfoResponse userInfo = null; userInfo = await WebServiceConnection.SendGet <GetUserInfoResponse>("user/" + guest.UserId + "/info"); if (userInfo == null) { Logs.WriteErrorLog("UserInfo zwrocilo null z WebSerwisu"); } if (userInfo.Email == null) { Logs.WriteErrorLog("UserEmil zwrocil null"); } var userNew = new User(userInfo.Email, guest.UserId); //userNew.UserId = guest.UserId; Logs.WriteErrorLog("UserNew.UserEmail: " + userNew.UserEmail + ", UserNew.UserId" + userNew.UserId); //Autoryzuj użytkownika, zakładając że jego token istnieje. userNew.Calendar.AuthorizeTask(); if (userNew.Calendar.IsCalendarAuthorized == false) { return; } Logs.WriteErrorLog("uzytkownik " + userNew.UserEmail + " zostal zautoryzowany."); userNew.Calendar.Service.Events.QuickAdd("primary", "Testujemy poprawnosc autoryzacji").ExecuteAsync(); _usersList.Add(userNew); Logs.WriteErrorLog("Pierwszy uzytkownik w kolejce to: " + _usersList.First().UserEmail); }
/// <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"); } }