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 AccountController(UserManager <ApplicationUser> userManager, SignInManager <ApplicationUser> signInManager, IMailer mailer, CookieServices cookieServices, DoAnTMDT_Entities context) { _signInManager = signInManager; _userManager = userManager; _mailer = mailer; _cookieServices = cookieServices; _context = context; }
public LoginPage(IWebDriver driver) { var optionsBuilder = new DbContextOptionsBuilder <DoAnTMDT_Entities>(); optionsBuilder.UseSqlServer("server=(localdb)\\MSSQLLocalDB;database=DoAnTMDT;Trusted_Connection=true"); _context = new DoAnTMDT_Entities(optionsBuilder.Options); _driver = driver; }
public HomeController(CookieServices cookieServices, DoAnTMDT_Entities context, IConfiguration config, UserManager <ApplicationUser> userManager) { _cookieServices = cookieServices; _userManager = userManager; _context = context; _clientID = config["paypal:clientId"]; _secretID = config["paypal:clientSecret"]; }
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 void RemoveFromCartWithoutSave(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"); string guidKey = Guid.NewGuid().ToString(); 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.CartID == x.Cart.CartID && !x.Cart.IsPayed); try { if (bienkiemtraxemcodonhangchuathanhtoancocungmadonhang.Count() > 0) { var bienkiemtraxemsanphamdodacotronggiohangchua = bienkiemtraxemcodonhangchuathanhtoancocungmadonhang.Where(x => x.ProductID == itemID && x.Size == size).FirstOrDefault(); if (bienkiemtraxemsanphamdodacotronggiohangchua != null) { if (size == "small") { bienkiemtraxemcosanphamtrongdb.SmallSizeQuantity++; } else if (size == "large") { bienkiemtraxemcosanphamtrongdb.LargeSizeQuantity++; } else { bienkiemtraxemcosanphamtrongdb.MediumSizeQuantity++; } bienkiemtraxemsanphamdodacotronggiohangchua.Quantity--; if (bienkiemtraxemsanphamdodacotronggiohangchua.Quantity == 0) { var chitietdonhangsexoa = _context.CartDetailTable.Where(x => x.ProductID == itemID && x.Size == size).FirstOrDefault(); if (_context.CartTable.Find(chitietdonhangsexoa.CartID) != null) { _context.Remove(chitietdonhangsexoa); } } //_context.SaveChanges(); } } } catch (Exception) { throw; } } }
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); }
public AdminController(DoAnTMDT_Entities context) { _context = context; }
public DisplayCartTotalViewComponent(CookieServices cookieServices, DoAnTMDT_Entities context) { _cookieServices = cookieServices; _context = context; }
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); }
internal static IEnumerable <Product> SortNameAsc(this DoAnTMDT_Entities _context) { return(_context.ProductTable.OrderBy(x => x.ProductName).ToList()); }
public DisplayProductsViewComponent(DoAnTMDT_Entities context) { _context = context; }