public IActionResult Delete(CartItem item)
        {
            var cartIdCookie = GetEncryptedShopCookie("CART_ID");

            if (cartIdCookie != null)
            {
                var cartId = Convert.ToInt32(cartIdCookie);

                var cart = _context.Carts
                           .Include(c => c.CartItems)
                           .SingleOrDefault(c => c.Id == cartId);

                if (cart != null)
                {
                    var cartItem = cart.CartItems
                                   .SingleOrDefault(ci => ci.ProductId == item.ProductId);

                    _context.Remove(cartItem);
                    _context.SaveChanges();
                }
            }
            if (cartIdCookie == null)
            {
                PopulateShopData(null);
            }
            else
            {
                PopulateShopData(Convert.ToInt32(cartIdCookie));
            }
            return(View("Cart"));
        }
        public IActionResult Index(CartItem item)
        {
            var cartIdCookie = GetEncryptedShopCookie("CART_ID");

            if (cartIdCookie == null)
            {
                var cart = new Cart();
                cart.CartItems = new List <CartItem>();
                cart.CartItems.Add(item);



                _context.Add(cart);
                _context.SaveChanges();

                SetEncryptedShopCookie("CART_ID", cart.Id.ToString());

                PopulateViewData(cart.Id);
            }
            else
            {
                var cartId = Convert.ToInt32(cartIdCookie);

                var cart = _context.Carts
                           .Include(c => c.CartItems)
                           .SingleOrDefault(c => c.Id == cartId);

                if (cart == null)
                {
                    return(NotFound());
                }

                var cartItem = cart.CartItems
                               .SingleOrDefault(ci => ci.ProductId == item.ProductId);

                if (cartItem == null)
                {
                    cart.CartItems.Add(item);
                }
                else
                {
                    if (item.Quantity == 0)
                    {
                        _context.Remove(cartItem);
                    }
                    else
                    {
                        cartItem.Quantity = item.Quantity;
                        _context.Update(cartItem);
                    }
                }

                _context.SaveChanges();

                PopulateViewData(cartId);
            }

            return(View());
        }
Esempio n. 3
0
 // GET: Notebooks/Edit/5
 public void DeleteDatabase(List <Notebook> NotebookList)
 {
     foreach (var ntb in NotebookList)
     {
         _context.Remove(ntb);
     }
     _context.SaveChanges();
 }
        public IActionResult Register(RegisterModel model)
        {
            // check if email already exists in database (if so throw exception)
            var existingUser = _shopAppContext.Users.SingleOrDefault(u => u.EmailAddress == model.EmailAddress);

            if (existingUser != null)
            {
                ModelState.AddModelError("EmailAddress", "Email Address already exists in database");
                return(View());
            }

            // hash the incoming password
            string passwordHash = BCrypt.Net.BCrypt.HashPassword(model.Password);

            // create a new user record
            var user = new User();

            user.FirstName    = model.FirstName;
            user.LastName     = model.LastName;
            user.EmailAddress = model.EmailAddress;
            user.PasswordHash = passwordHash;
            user.CreatedAt    = DateTimeOffset.Now;

            try
            {
                _shopAppContext.Users.Add(user);
                _shopAppContext.SaveChanges();
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View());
            }

            // redirect to the login
            return(RedirectToAction("Index"));
        }
        public IActionResult Index(CartItem item)
        {
            var cartIdCookie = GetEncryptedShopCookie("CART_ID");

            if (!ModelState.IsValid)
            {
                // there is a model error
                if (cartIdCookie == null)
                {
                    PopulateViewData(null);
                }
                else
                {
                    PopulateViewData(Convert.ToInt32(cartIdCookie));
                }
                return(View());
            }

            if (cartIdCookie == null)
            {
                // need to create a new cart
                var cart = new Cart();

                cart.CartItems = new List <CartItem>();
                cart.CartItems.Add(item);

                var userId = GetEncryptedShopCookie("USER_ID");
                if (userId != null)
                {
                    cart.UserId = Convert.ToInt32(userId);
                }

                // add the cart to the context, then apply the changes to the database via the SaveChanges method
                _context.Add(cart);
                _context.SaveChanges();

                // set the cartId in a cookie
                SetEncryptedShopCookie("CART_ID", cart.Id.ToString());

                // we are going to show the user the Index.cshtml view, so populate the ViewData values
                PopulateViewData(cart.Id);
            }
            else
            {
                // already has a cart so fetch from database
                var cartId = Convert.ToInt32(cartIdCookie);

                // fetch the cart from the database
                var cart = _context.Carts
                           .Include(c => c.CartItems)
                           .SingleOrDefault(c => c.Id == cartId);

                if (cart == null)
                {
                    return(NotFound());
                }

                // get the existing cart item, if any
                var cartItem = cart.CartItems
                               .SingleOrDefault(ci => ci.ProductId == item.ProductId);

                // add new item to cart or replace quantity on an existing item
                if (cartItem == null)
                {
                    // new item
                    cart.CartItems.Add(item);
                }
                else
                {
                    // update existing item
                    if (item.Quantity == 0)
                    {
                        // delete
                        _context.Remove(cartItem);
                    }
                    else
                    {
                        // update
                        cartItem.Quantity = item.Quantity;
                        _context.Update(cartItem);
                    }
                }

                _context.SaveChanges();

                PopulateViewData(cartId);
            }

            return(View());
        }