示例#1
0
        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));
        }
示例#4
0
 public MyOffersPage()
 {
     InitializeComponent();
     BindingContext = model = new MyOffersViewModel();
 }