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; }
/// <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; }
/// <summary> /// Funkcja dodająca nową ofertę /// </summary> public async void Add() { string currentUser = Thread.CurrentPrincipal.Identity.Name; User vendor = await usersProxy.GetUser(currentUser); Address address = new Address() { City = this.City, Street = this.Street, LocalNumber = this.LocalNumber, PostalCode = this.PostalCode }; OfferInfo offer = new OfferInfo() { //przekształcanie dat do odpowiedniej postaci (zgodnej z bazą danych) OfferStartTime = TimeZoneInfo.ConvertTimeToUtc(this.StartDate), OfferEndTime = TimeZoneInfo.ConvertTimeToUtc(this.EndDate), Description = this.Description, Price = double.Parse(this.Price), OfferPublishTime = DateTime.UtcNow }; Place place = new Place() { PlaceName = this.AccommodationName, Address = address }; Room room = new Room() { Capacity = int.Parse(AvailiableVacanciesNumber), Number = RoomNumber }; try { await offersProxy.SaveOfferAsync(offer, vendor, place, room); } catch (ArgumentException) { MessageBox.Show("Nie można dodać już oferty dla tego miejsca na ten pokój. Oferta koliduje z inną."); } catch (Exception) { MessageBox.Show("Dodawanie oferty nie powiodło się"); } }