/// <summary> /// Asynchronicznie dokonuje rezerwacji oferty /// </summary> /// <param name="o">Parametr komendy</param> /// <returns></returns> public async Task ReserveAsync(object o) { DisplayableOffer off = o as DisplayableOffer; if (off == null) { return; } int id = off.Id; string username = Thread.CurrentPrincipal.Identity.Name; try { OfferReserved?.Invoke(this, EventArgs.Empty); await _service.ReserveOffer(username, id); MessageBox.Show("Oferta została zarezerwowana"); } catch (ArgumentException) { MessageBox.Show("Oferta już zarezerwowana.", "Błąd"); } catch (Exception) { MessageBox.Show("Błąd systemu rezerwacji"); } }
/// <summary> /// Asynchronicznie rezygnuje z oferty /// </summary> /// <param name="x">Parametr</param> /// <returns></returns> public async Task ResignAsync(object x) { DisplayableOffer offer = x as DisplayableOffer; if (offer == null) { return; } string username = Thread.CurrentPrincipal.Identity.Name; try { OfferResigned?.Invoke(this, EventArgs.Empty); await _service.ResignOffer(username, offer.Id); MessageBox.Show("Rezygnacja z oferty została dokonana pomyślnie"); } catch (ArgumentException) { MessageBox.Show("Oferta nie była zarezerwowana.", "Błąd"); } catch (Exception) { MessageBox.Show("Błąd systemu rezerwacji"); } }
/// <summary> /// Wczytywanie historii ofert /// </summary> public async void Load() { var ret = new ObservableCollection <DisplayableOffer>(); //nazwa aktualnego usera string currentUser = Thread.CurrentPrincipal.Identity.Name; //wyslij zapytanie o akutualnego usera User user = await usersProxy.GetUser(currentUser); //wyslij zapytanie o listę ofert var list = await offersProxy.GetUserHistoricalOffers(user.Id); //Dla każdej oferty w historii stwórz jej wersję do wyświetlenia foreach (var item in list) { OfferInfo oi = await offerInfoesProxy.Get(item.OfferInfoId); Room r = await roomsProxy.Get(item.RoomId); Place p = await placesProxy.Get(r.PlaceId); Address a = await addressesProxy.Get(p.AddressId); p.Address = a; r.Place = p; item.OfferInfo = oi; item.Room = r; DisplayableOffer dof = new DisplayableOffer(item); ret.Add(dof); } this.CurrentOffersList = ret; }
public async void Load() { var ret = new ObservableCollection <DisplayableOffer>(); string currentUser = Thread.CurrentPrincipal.Identity.Name; User user = await usersProxy.GetUser(currentUser); var list = await offersProxy.GetUserOffers(user.Id); foreach (var item in list) { OfferInfo oi = await offerInfoesProxy.Get(item.OfferInfoId); Room r = await _roomsProxy.Get(item.RoomId); Place p = await PlacesProxy.Get(r.PlaceId); Address a = await addressesProxy.Get(p.AddressId); p.Address = a; r.Place = p; item.OfferInfo = oi; item.Room = r; DisplayableOffer dof = new DisplayableOffer(item); ret.Add(dof); } this.CurrentOffersList = ret; }
public EditOfferViewModel(DisplayableOffer displayableOffer, OffersViewModel ovm) { Description = displayableOffer.Description; AvailiableVacanciesNumber = displayableOffer.AvailableVacanciesNumber.ToString(); EndDate = displayableOffer.OfferEndTimeDate; StartDate = displayableOffer.OfferStartTimeDate; AccommodationName = displayableOffer.PlaceName; Price = displayableOffer.Price.ToString(); Street = displayableOffer.Address.Street; LocalNumber = displayableOffer.Address.LocalNumber; City = displayableOffer.Address.City; PostalCode = displayableOffer.Address.PostalCode; Id = displayableOffer.Id; RoomNumber = displayableOffer.RoomNumber; Ovm = ovm; UpDateCommand = new DelegateCommand(x => UpDate()); offersProxy = new OffersProxy(); }
/// <summary> /// Inicjalizuje nową instancję klasy DisplayableOfferViewModel /// </summary> /// <param name="offer">Oferta stowarzyszona z bieżącą instancją</param> public DisplayableOfferViewModel(DisplayableOffer offer) { ReserveCommand = new DelegateCommand(async o => await ReserveAsync(o)); ResignCommand = new DelegateCommand(async o => await ResignAsync(o)); Offer = offer; }