public MyOffersViewModel Build(string buyerId) { var propertyOffers = _context.Properties .Where(p => p.Offers.Any()) .Select(p => new { Offers = p.Offers.Where(o => o.BuyerUserId == buyerId), Property = p }) .SelectMany(p => p.Offers.Select(o => new MyOfferOnProperty { PropertyType = p.Property.PropertyType, NumberOfBedrooms = p.Property.NumberOfBedrooms, StreetName = p.Property.StreetName, PropertyId = p.Property.Id, OfferId = o.Id, Amount = o.Amount, CreatedAt = o.CreatedAt, Status = o.Status.ToString() })) .ToList(); var myOfferViewModel = new MyOffersViewModel { Offers = propertyOffers }; return(myOfferViewModel); }
public async Task <IActionResult> MyOffers(MyOffersViewModel model) { if (ModelState.IsValid) { if (model.Image != null && (model.Image.ContentType.Length == 0 || !model.Image.ContentType.Contains("image"))) { ModelState.AddModelError("Image", "Загружено не изображение"); } else { Offer offer = new Offer() { Title = model.Title, Description = model.Description, PostedDate = DateTime.Now, UserId = (await userManager.GetUserAsync(User)).Id, CategoryId = model.CategoryId }; db.Offers.Add(offer); await db.SaveChangesAsync(); Price price = new Price() { Value = model.Price, IsContract = model.IsPriceContract, IsWithDelivery = model.IsWithDelivery, OfferId = offer.Id }; db.Prices.Add(price); if (model.Image != null) { string fileName = Path.ChangeExtension(offer.Id.ToString(), Path.GetExtension(model.Image.FileName)); using (var fileStream = new FileStream(Path.Combine(appEnvironment.WebRootPath, "img", "offers", fileName), FileMode.Create)) { await model.Image.CopyToAsync(fileStream); } offer.ImageUrl = "/img/offers/" + fileName; db.Offers.Update(offer); } await db.SaveChangesAsync(); return(await MyOffers()); } } ViewBag.Categories = new SelectList(await db.Categories.AsNoTracking().ToListAsync(), "Id", "Name"); int userId = (await userManager.GetUserAsync(User)).Id; model.Offers = await db.Offers.Where(o => o.UserId == userId).Include(o => o.Price).Include(o => o.User).AsNoTracking().ToListAsync(); return(View(model)); }
public ActionResult MyOffers() { var entity = SessionHelper.CurrentEntity; var offers = monetaryOfferRepository.Where(o => o.SellerID == entity.EntityID) .OrderBy(o => o.BuyCurrencyID) .OrderBy(o => o.SellCurrencyID) .ToList(); var vm = new MyOffersViewModel(offers); return(View(vm)); }
public MyOffersPage() { InitializeComponent(); BindingContext = model = new MyOffersViewModel(); }