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); }
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)); }
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); }
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); }
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); }
/// <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); }
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); }
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); }
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); }
public static void RemoveWishList(ClaimsPrincipal user, WebshopDbContext db) { db.Remove(GetWishList(user, db)); db.SaveChanges(); }