Exemplo n.º 1
0
        public IActionResult Add(Guid ID, int Quantity)
        {
            //Cart cart = context.Carts.Include(x => x.Items).ThenInclude(x => x.Product).OrderBy(x => x.Items.OrderBy(y => y.Product.Name)).FirstOrDefault(x => x.Buyer == User.Identity.Name);
            //Cart cart = context.Carts.Include(x => x.Items).ThenInclude(x => x.Product).FirstOrDefault(x => x.Buyer == User.Identity.Name);
            //if (cart == null)
            //{
            //    cart = new Cart();
            //    cart.Buyer = User.Identity.Name;
            //    context.Carts.Add(cart);
            //    //context.SaveChanges();
            //}
            Cart    cart = Helper.FILLTEMPDATA(context, User.Identity.Name, TempData, false);
            Product prod = context.Products.FirstOrDefault(x => x.ID == ID);
            //CartItem item = cart.Items.FirstOrDefault(x => x.Product== prod);
            CartItem item = cart.Items.FirstOrDefault(x => x.Product.ID == ID);

            if (item == null)
            {
                //item = new CartItem(prod, Quantity);
                //item = new CartItem(context.Products.FirstOrDefault(x => x.ID == ID), Quantity, cart);
                item = new CartItem()
                {
                    CartID = cart.ID, ProductID = prod.ID, Count = Quantity, Product = prod
                };
                //cart.Items.Add(item);
                //cart.Items.Add(new CartItem(context.Products.FirstOrDefault(x => x.ID == ID), Quantity));
                context.Items.Add(item);
            }
            else
            {
                item.Count += Quantity;
            }
            context.SaveChanges();
            int price = cart.Items.Sum(x => x.Count * x.Product.Price);
            int count = cart.Items.Sum(x => x.Count);

            if (TempData.ContainsKey("Count"))
            {
                TempData["Count"]     = count;
                TempData["CartPrice"] = price;
            }
            else
            {
                TempData.Add("Count", count);
                TempData.Add("CartPrice", price);
            }
            return(RedirectToAction("Product", "Home", new { ID }));
            //return View("Cart",cart);
        }
Exemplo n.º 2
0
 private static WishList CreateWishList(Guid userId, WebshopDbContext db)
 {
     // return new WishList(){
     //     Name="Default",
     //     UserId = userId,
     // };
     db.WishList.Add(new WishList()
     {
         Name   = "Default",
         UserId = userId,
     });
     db.SaveChanges();
     return(db.WishList.FirstOrDefault(w => w.UserId == userId));
 }
Exemplo n.º 3
0
        public static bool ChangePassword(ClaimsPrincipal user, string password, WebshopDbContext db)
        {
            string guidString = user.Claims.Where(claim => claim.Type == ClaimTypes.Sid).Select(s => s.Value).SingleOrDefault();

            if (!Guid.TryParse(guidString, out Guid userId))
            {
                return(false);
            }
            User u = UserService.GetUser(userId, db);

            u.Password = Hashing.HashPassword(password);
            db.Update(u);
            db.SaveChanges();
            return(true);
        }
Exemplo n.º 4
0
        public static bool ChangeAddress(ClaimsPrincipal user, ChangeAddressViewModel addressViewModel, WebshopDbContext db)
        {
            string guidString = user.Claims.Where(claim => claim.Type == ClaimTypes.Sid).Select(s => s.Value).SingleOrDefault();

            if (!Guid.TryParse(guidString, out Guid userId))
            {
                return(false);
            }
            User u = UserService.GetUser(userId, db);

            u.Street     = addressViewModel.Street;
            u.PostalCode = addressViewModel.PostalCode;
            db.Update(u);
            db.SaveChanges();
            return(true);
        }
Exemplo n.º 5
0
        public static bool OrderShoppingCart(ShoppingCart shoppingCart, OrderTransactionViewModel orderTransactionViewModel, WebshopDbContext db, ClaimsPrincipal user)
        {
            Order order = new Order()
            {
                City       = orderTransactionViewModel.City,
                Date       = DateTime.Now,
                PostalCode = orderTransactionViewModel.PostalCode,
                Street     = orderTransactionViewModel.Street,
            };

            if (user.Identity.IsAuthenticated)
            {
                string guidString = user.Claims.Where(claim => claim.Type == ClaimTypes.Sid).Select(s => s.Value)
                                    .SingleOrDefault();
                if (Guid.TryParse(guidString, out Guid userId))
                {
                    order.UserId = userId;
                }
            }
            List <OrderItem> orderItems = new List <OrderItem>();

            foreach (var item in shoppingCart.ShoppingCartItems)
            {
                OrderItem orderItem = new OrderItem()
                {
                    Amount      = item.Amount,
                    InventoryId = item.InventoryId,
                    PriceBought = item.Inventory.Price,
                };
                orderItems.Add(orderItem);
                db.OrderItem.Add(orderItem);
            }
            order.OrderItems = orderItems;
            order.StatusId   = 1;
            db.Order.Add(order);
            db.SaveChanges();
            return(true);
        }
Exemplo n.º 6
0
 /// <summary>
 /// Registers a new user to the database , checks if the user already exists , also hashes the password
 /// </summary>
 /// <param name="user"></param>
 /// <param name="db"></param>
 /// <returns>true if succeeded or false if failed</returns>
 public static bool Register(User user, WebshopDbContext db)
 {
     //if email exists then return false indicating that no user could be created
     if (!db.User.Any(u => user.Email == u.Email))
     {
         //hash the password here
         user.Password = Hashing.HashPassword(user.Password);
         user.CityId   = 1;
         user.RoleId   = 1;
         try
         {
             db.User.Add(user);
             db.SaveChanges();
             return(true);
         }
         catch (DbUpdateException e)
         {
             Debug.WriteLine(e.StackTrace);
             return(false);
         }
     }
     return(false);
 }
Exemplo n.º 7
0
        public static bool DecreaseAmountInventory(int inventoryId, ClaimsPrincipal user, WebshopDbContext db)
        {
            string guidString = user.Claims.Where(claim => claim.Type == ClaimTypes.Sid).Select(s => s.Value).SingleOrDefault();

            if (!Guid.TryParse(guidString, out Guid userId))
            {
                return(false);
            }
            WishList wishList = db.WishList.Include(wi => wi.WishListItems).FirstOrDefault(w => w.UserId == userId);

            if (wishList == null)
            {
                return(false);
            }
            WishListItem item = wishList.WishListItems.FirstOrDefault(i => i.InventoryId == inventoryId);

            if (item == null || item.Amount < 2)
            {
                return(false);
            }
            item.Amount--;
            db.SaveChanges();
            return(true);
        }
Exemplo n.º 8
0
        public static bool RemoveInventory(int inventoryId, ClaimsPrincipal user, WebshopDbContext db)
        {
            string guidString = user.Claims.Where(claim => claim.Type == ClaimTypes.Sid).Select(s => s.Value).SingleOrDefault();

            if (!Guid.TryParse(guidString, out Guid userId))
            {
                return(false);
            }
            WishList wishList = db.WishList.Include(wi => wi.WishListItems).FirstOrDefault(w => w.UserId == userId);

            if (wishList == null)
            {
                return(false);
            }
            WishListItem toBeRemoved = db.WishListItem.FirstOrDefault(wi => wi.InventoryId == inventoryId && wishList.WishListId == wi.WishListId);

            if (toBeRemoved == null)
            {
                return(false);
            }
            wishList.WishListItems.Remove(toBeRemoved);
            db.SaveChanges();
            return(true);
        }
Exemplo n.º 9
0
        public static bool AddInventory(int inventoryId, ClaimsPrincipal user, WebshopDbContext db)
        {
            //TODO: Check if theres a wishlist for that user. Else create a new one
            //TODO: Update wishlist item if there is one , else create a new one
            string guidString = user.Claims.Where(claim => claim.Type == ClaimTypes.Sid).Select(s => s.Value).SingleOrDefault();

            if (!Guid.TryParse(guidString, out Guid userId))
            {
                return(false);
            }
            WishList wishList = db.WishList.Include(wi => wi.WishListItems).FirstOrDefault(w => w.UserId == userId) ?? CreateWishList(userId, db);

            if (wishList == null)
            {
                return(false);
            }
            if (wishList.WishListItems == null || wishList.WishListItems.Count <= 0)
            {
                db.WishListItem.Add(NewWishListItem(wishList.WishListId, inventoryId));
            }
            else
            {
                WishListItem wishListItem = wishList.WishListItems.FirstOrDefault(i =>
                                                                                  i.InventoryId == inventoryId && i.WishListId == wishList.WishListId);
                if (wishListItem != null)
                {
                    wishListItem.Amount++;
                }
                else
                {
                    db.WishListItem.Add(NewWishListItem(wishList.WishListId, inventoryId));
                }
            }
            db.SaveChanges();
            return(true);
        }
Exemplo n.º 10
0
 public static void RemoveWishList(ClaimsPrincipal user, WebshopDbContext db)
 {
     db.Remove(GetWishList(user, db));
     db.SaveChanges();
 }