public async Task <IActionResult> Shop(int?categoryId) { List <Product> products = await _context.Set <Product>() .Include(a => a.ProductImages) .Include(a => a.Prices) .Where(a => a.IsActive && a.ProductImages.Any(x => x.IsTitleImage) && (categoryId == null || a.CategoryId == categoryId)) .ToListAsync(); List <Category> categories = await _context.Set <Category>() .Include(a => a.Products) .Where(a => a.Products.Any()) .ToListAsync(); ProductGroupsViewModel model = new ProductGroupsViewModel { Products = products, Categories = categories, CurrentCategoryId = categoryId }; List <Item> cart = HttpContext.Session.GetObjectFromJson <List <Item> >("cart") ?? new List <Item>(); ViewBag.cartCount = cart.Count; return(View(model)); }
public async Task <IActionResult> Login(LoginModel model) { if (ModelState.IsValid) { User user = await _context.Set <User>().FirstOrDefaultAsync(u => u.Email == model.Email); if (user != null) { string password = PasswordEncrypt.DecryptStringAes(user.Password, _config.Value.Salt); if (model.Password == password) { await Authenticate(model.Email); return(RedirectToAction("Index", "Home")); } } ModelState.AddModelError("", "Некорректные логин и(или) пароль"); } return(View(model)); }
public IActionResult Index() { List <Item> cart = HttpContext.Session.GetObjectFromJson <List <Item> >("cart"); if (cart == null || !cart.Any(a => a.Quantity > 0)) { return(View(new List <CardItemViewModel>())); } List <CardItemViewModel> result = new List <CardItemViewModel>(); foreach (Item item in cart.Where(a => a.Quantity > 0)) { Product product = _context.Set <Product>() .Include(a => a.Prices) .ThenInclude(a => a.ProductSize) .Include(a => a.ProductImages) .ThenInclude(a => a.Color) .First(a => a.Id == item.ProductId); CardItemViewModel resultItem = new CardItemViewModel { Product = product, ImageEntity = product.ProductImages.First(a => a.ColorId == item.ColorId), Price = product.Prices.First(a => a.ProductSizeId == item.SizeId), Quantity = item.Quantity, Id = item.Id }; result.Add(resultItem); } ViewBag.cartCount = cart.Count; return(View(result)); }
public async Task <IActionResult> Index() { List <Product> products = await _context.Set <Product>() .Include(a => a.ProductImages) .Include(a => a.Prices) .Where(a => a.IsActive && a.ProductImages.Any(x => x.IsTitleImage)) .Take(8) .ToListAsync(); List <Item> cart = HttpContext.Session.GetObjectFromJson <List <Item> >("cart") ?? new List <Item>(); ViewBag.cartCount = cart.Count; return(View(products)); }
public IReadOnlyCollection <string> GetSitemapNodes(IUrlHelper urlHelper) { string scheme = urlHelper.ActionContext.HttpContext.Request.Scheme; List <string> nodes = new List <string> { urlHelper.Action("Index", "Home", null, scheme), urlHelper.Action("Contacts", "Home", null, scheme), urlHelper.Action("Shop", "Shop", null, scheme) }; foreach (var product in _context.Set <Product>().ToArray()) { nodes.Add(urlHelper.Action("Product", "Product", new { id = product.Id }, scheme)); } return(nodes); }
public async Task <IActionResult> Index() { User user = await _context.Set <User>() .Include(a => a.Orders) .ThenInclude(a => a.Contact) .SingleOrDefaultAsync(a => a.Email == User.Identity.Name) ?? new User(); ContactViewModel model = new ContactViewModel { Name = user.FirstName, MobilePhone = user.MobilePhone, Address = user.Orders?.OrderByDescending(a => a.Created).FirstOrDefault()?.Contact?.Address }; return(View(model)); }
public IActionResult Product(int id, int?sizeId, int?colorId) { Product product = _context.Set <Product>() .Include(a => a.ProductImages) .ThenInclude(a => a.Color) .ThenInclude(a => a.ImageEntity) .Include(a => a.Prices) .ThenInclude(a => a.ProductSize) .Single(a => a.Id == id); ProductViewModel model = new ProductViewModel { Product = product, ColorId = colorId, SizeId = sizeId ?? product.Prices.First(a => a.Value == product.Prices.Min(x => x.Value)).ProductSizeId }; List <Item> cart = HttpContext.Session.GetObjectFromJson <List <Item> >("cart") ?? new List <Item>(); ViewBag.cartCount = cart.Count; return(View(model)); }