public async Task <IActionResult> Login(LoginRegisterViewModel vm) { ModelState.Remove("PasswordConfirm"); if (ModelState.IsValid) { var biendekiemtracotrongcsdlhaykhong = await _signInManager.PasswordSignInAsync(vm.UserName, vm.Password, vm.RememberMe, lockoutOnFailure : false); if (biendekiemtracotrongcsdlhaykhong.Succeeded) { if (_cookieServices.ReadCookie(HttpContext, "CART_INFORMATION") != _userManager.FindByNameAsync(vm.UserName).Result.Id || _cookieServices.ReadCookie(HttpContext, "CART_INFORMATION") == null) { if (vm.RememberMe) { _cookieServices.AddCookie(HttpContext, "CART_INFORMATION", _userManager.FindByNameAsync(vm.UserName).Result.Id, isPersistent: true); } else { _cookieServices.AddCookie(HttpContext, "CART_INFORMATION", _userManager.FindByNameAsync(vm.UserName).Result.Id); } } return(RedirectToAction("Index", "Home")); } } return(StatusCode(69)); }
public IViewComponentResult Invoke() { if (_cookieServices.ReadCookie(HttpContext, "CART_INFORMATION") != null && HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier) != null) { ViewBag.Total = _context.CartDetailTable.Where(x => x.Cart.UserID == _cookieServices.ReadCookie(HttpContext, "CART_INFORMATION") && x.Cart.IsDisplay).Count(); return(View("_CountTotalCartItem")); } else { ViewBag.Total = 0; return(View("_CountTotalCartItem")); } }
public IViewComponentResult Invoke() { if (_cookieServices.ReadCookie(HttpContext, "CART_INFORMATION") != null && HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier) != null) { ViewBag.Total = _context.CartDetailTable.Where(x => x.Cart.UserID == _cookieServices.ReadCookie(HttpContext, "CART_INFORMATION") && !x.Cart.IsPayed).Count(); var dsdonhang = _context.DisplayCart(HttpContext, _cookieServices); return(View("_CheckoutTotalCartItem", dsdonhang)); } else { _cookieServices.DeleteCookie(HttpContext, "CART_INFORMATION"); return(Content("")); } }
internal static bool ConfirmDeleted(this DoAnTMDT_Entities _context, HttpContext httpContext, CookieServices _cookieServices, string orderID) { string cookie = _cookieServices.ReadCookie(httpContext, "CART_INFORMATION"); if (cookie != null) { try { var cartDetailsInDB = _context.CartDetailTable.Include(x => x.Product).Where(x => x.CartID == orderID).ToList(); foreach (var cartDetail in cartDetailsInDB) { _context.RemoveFromCart(httpContext, cartDetail.ProductID, cartDetail.Size, (byte)cartDetail.Quantity); } _context.Remove(_context.CartTable.Find(orderID)); _context.SaveChanges(); return(true); } catch (Exception e) { return(false); } } return(false); }
internal static bool ConfirmOrder(this DoAnTMDT_Entities _context, UserManager <ApplicationUser> _userManager, HttpContext httpContext, CookieServices _cookieServices, string orderID) { string cookie = _cookieServices.ReadCookie(httpContext, "CART_INFORMATION"); if (cookie != null) { try { var cartInDB = _context.CartTable.Find(orderID); double pointConverted; if (cartInDB.IsCOD) { cartInDB.IsPayed = true; cartInDB.PayDate = DateTime.Now; pointConverted = _context.CartDetailTable.Where(x => x.CartID == orderID).Include(x => x.Product).Sum(x => x.Product.ProductPrice * x.Quantity) / 20; } cartInDB.IsCompleted = true; //Tính điểm xu, nếu thanh toán = Paypal thì dc giảm 20% => tổng giá nhân cho (1*0.2) //Xu được tính theo tỉ lệ tổng giá chia 20, khi sử dụng 1 xu tương đương 1$ pointConverted = (_context.CartDetailTable.Where(x => x.CartID == orderID).Include(x => x.Product).Sum(x => x.Product.ProductPrice * x.Quantity) * (1 - 0.2) / 20); var user = _userManager.FindByNameAsync(httpContext.User.Identity.Name).Result; user.Point += Convert.ToInt32(pointConverted); _userManager.UpdateAsync(user); _context.SaveChanges(); return(true); } catch (Exception) { return(false); } } return(false); }
public JsonResult GetAddressInfo(int addressValue) { string userID = _cookieServices.ReadCookie(HttpContext, "CART_INFORMATION"); var returnItem = _context.DeliveryInfoTable.Single(x => x.User.Id == userID && x.AddressValue == addressValue); return(Json(returnItem)); }
internal static IEnumerable <Cart> DisplayCompletedCart(this DoAnTMDT_Entities _context, HttpContext httpContext, CookieServices _cookieServices) { string cookie = _cookieServices.ReadCookie(httpContext, "CART_INFORMATION"); if (cookie != null) { var dsdonhangdathanhtoan = _context.CartTable.Include(x => x.CartDetails).ThenInclude(x => x.Product).Where(x => x.IsCompleted && !x.IsDisplay).ToList(); return(dsdonhangdathanhtoan); } return(null); }
internal static IEnumerable <Cart> DisplayCart(this DoAnTMDT_Entities _context, HttpContext httpContext, CookieServices _cookieServices) { string cookie = _cookieServices.ReadCookie(httpContext, "CART_INFORMATION"); if (cookie != null) { //_cookieServices.AddCookie(httpContext, "CART_INFORMATION", httpContext.User.FindFirstValue(ClaimTypes.NameIdentifier)); //Muốn lấy đơn hàng theo điều kiện thì dùng exstension method Where(x => x.Property) ở đoạn code dưới //Code dưới hiển thị danh sách chưa đơn hàng chưa được thanh toán var dsdonhangchuathanhtoan = _context.CartTable.Include(x => x.CartDetails).ThenInclude(x => x.Product).Where(x => x.UserID == cookie && !x.IsCompleted && !x.IsDisplay).ToList(); return(dsdonhangchuathanhtoan); } return(null); }
internal static CartAndUserViewModel DisplayCartAndUserInfo(this DoAnTMDT_Entities _context, HttpContext httpContext, UserManager <ApplicationUser> _userManager, CookieServices _cookieServices) { string cookie = _cookieServices.ReadCookie(httpContext, "CART_INFORMATION"); if (cookie != null) { //_cookieServices.AddCookie(httpContext, "CART_INFORMATION", httpContext.User.FindFirstValue(ClaimTypes.NameIdentifier)); //Muốn lấy đơn hàng theo điều kiện thì dùng exstension method Where(x => x.Property) ở đoạn code dưới //Code dưới hiển thị danh sách chưa đơn hàng chưa được thanh toán var dsdonhangduochienthi = _context.CartTable.Include(x => x.CartDetails).ThenInclude(x => x.Product).Where(x => x.UserID == cookie && x.IsDisplay).ToList(); return(new CartAndUserViewModel(dsdonhangduochienthi, _userManager.Users.Include(x => x.DeliveryInfo).Single(x => x.UserName == httpContext.User.Identity.Name))); } return(null); }
internal static bool AddToCart(this DoAnTMDT_Entities _context, HttpContext httpContext, int itemID, string size, byte quantity = 1) { Product bienkiemtraxemcosanphamtrongdb = _context.ProductTable.Find(itemID); if (bienkiemtraxemcosanphamtrongdb != null) { string cookieKey = _cookieServices.ReadCookie(httpContext, "CART_INFORMATION"); if (string.IsNullOrEmpty(cookieKey)) { cookieKey = httpContext.User.FindFirstValue(ClaimTypes.NameIdentifier); _cookieServices.AddCookie(httpContext, "CART_INFORMATION", cookieKey); } var bienkiemtraxemcodonhangchuathanhtoancocungmadonhang = _context.CartDetailTable.Include(x => x.Cart).Where(x => x.Cart.UserID == cookieKey && x.Cart.IsDisplay); if (bienkiemtraxemcodonhangchuathanhtoancocungmadonhang.Count() > 0) { var bienkiemtraxemsanphamdodacotronggiohangchua = bienkiemtraxemcodonhangchuathanhtoancocungmadonhang.Where(x => x.ProductID == itemID && x.Size == size).FirstOrDefault(); if (bienkiemtraxemsanphamdodacotronggiohangchua != null) { byte calculatedQuantity = 0; if (size == "small") { if (bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity - quantity < 0) { if (bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity > 0) { calculatedQuantity = bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity; bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity = 0; } } else { bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity -= quantity; } } else if (size == "large") { if (bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity - quantity < 0) { if (bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity > 0) { calculatedQuantity = bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity; bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity = 0; } } else { bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity -= quantity; } } else { if (bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity - quantity < 0) { if (bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity > 0) { calculatedQuantity = bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity; bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity = 0; } } else { bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity -= quantity; } } if (calculatedQuantity > 0) { bienkiemtraxemsanphamdodacotronggiohangchua.Quantity += calculatedQuantity; } else { bienkiemtraxemsanphamdodacotronggiohangchua.Quantity += quantity; } } else { byte calculatedQuantity = 0; bienkiemtraxemcodonhangchuathanhtoancocungmadonhang.First().Cart.OderDate = DateTime.Now; if (size == "small") { if (bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity - quantity < 0) { if (bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity > 0) { calculatedQuantity = bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity; bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity = 0; } } else { bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity -= quantity; } } else if (size == "large") { if (bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity - quantity < 0) { if (bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity > 0) { calculatedQuantity = bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity; bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity = 0; } } else { bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity -= quantity; } } else { if (bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity - quantity < 0) { if (bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity > 0) { calculatedQuantity = bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity; bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity = 0; } } else { bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity -= quantity; } } if (calculatedQuantity > 0) { _context.CartDetailTable.Add(new CartDetail { Product = bienkiemtraxemcosanphamtrongdb, Quantity = calculatedQuantity, Cart = bienkiemtraxemcodonhangchuathanhtoancocungmadonhang.First().Cart, Size = size, CartID = bienkiemtraxemcodonhangchuathanhtoancocungmadonhang.First().CartID }); } else { _context.CartDetailTable.Add(new CartDetail { Product = bienkiemtraxemcosanphamtrongdb, Quantity = quantity, Cart = bienkiemtraxemcodonhangchuathanhtoancocungmadonhang.First().Cart, Size = size, CartID = bienkiemtraxemcodonhangchuathanhtoancocungmadonhang.First().CartID }); } } _context.SaveChanges(); return(true); } else { string guidKey = Guid.NewGuid().ToString(); Cart cartDetail = new Cart { CartID = guidKey, UserID = cookieKey, OderDate = DateTime.Now }; CartDetail detail; byte calculatedQuantity = 0; if (size == "small") { if (bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity - quantity < 0) { if (bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity > 0) { calculatedQuantity = bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity; bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity = 0; } } else { bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity -= quantity; } } else if (size == "large") { if (bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity - quantity < 0) { if (bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity > 0) { calculatedQuantity = bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity; bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity = 0; } } else { bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity -= quantity; } } else { if (bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity - quantity < 0) { if (bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity > 0) { calculatedQuantity = bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity; bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity = 0; } } else { bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity -= quantity; } } if (calculatedQuantity > 0) { detail = new CartDetail { Product = bienkiemtraxemcosanphamtrongdb, Quantity = calculatedQuantity, Size = size, CartID = guidKey, Cart = cartDetail }; } else { detail = new CartDetail { Product = bienkiemtraxemcosanphamtrongdb, Quantity = quantity, Size = size, CartID = guidKey, Cart = cartDetail }; } _context.CartDetailTable.Add(detail); _context.SaveChanges(); return(true); } } return(false); }