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;
        }
예제 #2
0
        /// <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ę");
            }
        }