Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
 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"];
 }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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;
                }
            }
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
 public AdminController(DoAnTMDT_Entities context)
 {
     _context = context;
 }
Esempio n. 11
0
 public DisplayCartTotalViewComponent(CookieServices cookieServices, DoAnTMDT_Entities context)
 {
     _cookieServices = cookieServices;
     _context        = context;
 }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
 internal static IEnumerable <Product> SortNameAsc(this DoAnTMDT_Entities _context)
 {
     return(_context.ProductTable.OrderBy(x => x.ProductName).ToList());
 }
Esempio n. 14
0
 public DisplayProductsViewComponent(DoAnTMDT_Entities context)
 {
     _context = context;
 }