private async Task Load() { var coll = new ObservableCollection <DisplayableOfferViewModel>(); string username = Thread.CurrentPrincipal.Identity.Name; //using (var context = new AccommodationContext()) //{ // User u = context.Users.FirstOrDefault(us => us.Username.Equals(username)); // if (u == null) throw new Exception(); // IEnumerable<Offer> offers = // context.Offers.Where(o => o.CustomerId == u.Id) // .Include(o => o.OfferInfo) // .Include(o => o.Room.Place) // .Include(o => o.Room.Place.Address); // foreach (var offer in offers) // { // coll.Add(new DisplayableOfferViewModel(new DisplayableOffer(offer))); // } //} try { IList <Offer> offers = await _offersProxy.GetReservedOffers(username); foreach (var offer in offers) { offer.OfferInfo = await _offerInfoesProxy.Get(offer.OfferInfoId); offer.Room = await _roomsProxy.Get(offer.RoomId); offer.Room.Place = await _placesProxy.Get(offer.Room.PlaceId); offer.Room.Place.Address = await _addressesProxy.Get(offer.Room.Place.AddressId); } foreach (var offer in offers) { var vm = new DisplayableOfferViewModel(new DisplayableOffer(offer)); coll.Add(vm); vm.OfferResigned += OnResign; } } catch (Exception) { MessageBox.Show("Nie udało się załodować ofert."); } PurchasedOffers = coll; }
private void OnResign(object sender, EventArgs e) { DisplayableOfferViewModel vm = sender as DisplayableOfferViewModel; PurchasedOffers.Remove(vm); }