Example #1
0
        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"));
     }
 }
Example #3
0
 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(""));
     }
 }
Example #4
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);
        }
Example #5
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);
        }
        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));
        }
Example #7
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);
        }
Example #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);
        }
Example #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);
        }
Example #10
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);
        }