Пример #1
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            _context.Attach(ProductCategory).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProductCategoryExists(ProductCategory.ProductCategoryId))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(RedirectToPage("./Index"));
        }
Пример #2
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            _context.ProductProperty.Add(ProductProperty);
            await _context.SaveChangesAsync();

            return(RedirectToPage("./Index"));
        }
Пример #3
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            ApplicationUser currentUser = await _userManager.GetUserAsync(HttpContext.User);

            ProductId = Convert.ToInt32(Request.Form["ProductId"]);
            var product = await _context.Product.FindAsync(ProductId);

            var cart = await _context.Cart
                       .Include(a => a.Customer)
                       .Where(a => a.UserId == currentUser.Id)
                       .SingleOrDefaultAsync();

            if (cart == null)
            {
                cart          = new Models.Cart();
                cart.UserId   = currentUser.Id;
                cart.Customer = currentUser;
            }

            cart.TotalPrice += product.Price;

            var map = await _context.ProductCartMap
                      .Where(a => a.CartId == cart.CartId)
                      .Where(a => a.ProductId == ProductId)
                      .SingleOrDefaultAsync();

            if (map == null)
            {
                map = new ProductCartMap(ProductId, product, cart.CartId, cart);
                await _context.ProductCartMap.AddAsync(map);
            }
            else
            {
                map.ProductQuantity++;
                _context.Attach(map).State = EntityState.Modified;
            }

            await _context.SaveChangesAsync();

            TempData[MessageKey] = $"Product #{product.ProductId} {product.Name}";

            return(Redirect("/Product" + Request.QueryString));
        }
Пример #4
0
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            Order = await _context.Order.FindAsync(id);

            if (Order != null)
            {
                _context.Order.Remove(Order);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
Пример #5
0
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            ProductPropertyValue = await _context.ProductPropertyValue.FindAsync(id);

            if (ProductPropertyValue != null)
            {
                _context.ProductPropertyValue.Remove(ProductPropertyValue);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
Пример #6
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var maps = _context.ProductPropertyMap
                       .Where(a => a.ProductId == Product.ProductId);

            _context.ProductPropertyMap.RemoveRange(maps);

            foreach (var value in _context.ProductPropertyValue)
            {
                if (Request.Form[value.Key].Count > 0)
                {
                    var map = new ProductPropertyMap(Product.ProductId, Product, value.ProductPropertyValueId, value);
                    _context.ProductPropertyMap.Add(map);
                }
            }

            _context.Attach(Product).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProductExists(Product.ProductId))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(RedirectToPage("./Index"));
        }
Пример #7
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            foreach (var value in _context.ProductPropertyValue)
            {
                if (Request.Form[value.Key].Count > 0)
                {
                    var map = new ProductPropertyMap(Product.ProductId, Product, value.ProductPropertyValueId, value);
                    _context.ProductPropertyMap.Add(map);
                }
            }

            _context.Product.Add(Product);
            await _context.SaveChangesAsync();

            return(RedirectToPage("./Index"));
        }
Пример #8
0
        public async Task <IActionResult> OnPostAsync()
        {
            //if (!ModelState.IsValid)
            //{
            //    return Page();
            //}

            CurrentUser = await _userManager.GetUserAsync(HttpContext.User);

            if (Request.Form["Action"] == "DeleteProduct")
            {
                var productId = Convert.ToInt32(Request.Form["ProductId"]);

                var map = await _context.ProductCartMap
                          .Include(a => a.Product)
                          .Include(a => a.Cart)
                          .ThenInclude(a => a.Customer)
                          .Where(a => a.Cart.Customer.Id == CurrentUser.Id)
                          .Where(a => a.ProductId == productId)
                          .SingleOrDefaultAsync();

                if (map != null)
                {
                    var cart = map.Cart;
                    cart.TotalPrice -= map.Product.Price * map.ProductQuantity;

                    _context.Attach(cart).State = EntityState.Modified;
                    _context.ProductCartMap.Remove(map);
                    await _context.SaveChangesAsync();

                    TempData[MessageKey] = $"Product #{map.Product.ProductId} {map.Product.Name} Deleted!";
                }
            }
            else if (Request.Form["Action"] == "CreateOrder")
            {
                Order.DatePlaced = DateTime.Now;
                Order.CustomerId = CurrentUser.Id;

                var cartMaps = await _context.ProductCartMap
                               .Include(a => a.Product)
                               .Include(a => a.Cart)
                               .ThenInclude(a => a.Customer)
                               .Where(a => a.Cart.Customer.Id == CurrentUser.Id)
                               .ToListAsync();

                var cart = cartMaps[0].Cart;

                Order.TotalPrice = cart.TotalPrice;

                if (cartMaps.Count > 0)
                {
                    foreach (var cartMap in cartMaps)
                    {
                        var orderMap = new ProductOrderMap(
                            cartMap.ProductId,
                            cartMap.Product,
                            Order.OrderId,
                            Order);

                        orderMap.ProductQuantity = cartMap.ProductQuantity;

                        _context.ProductOrderMap.Add(orderMap);
                        _context.ProductCartMap.Remove(cartMap);
                    }

                    _context.Order.Add(Order);
                    _context.Cart.Remove(cart);

                    await _context.SaveChangesAsync();

                    TempData[MessageKey] = $"Order Placed!";
                }
            }

            return(Redirect("/Cart"));
        }