示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }
示例#5
0
        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));
        }
示例#7
0
        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));
        }