예제 #1
0
 public int Insert(TblCart cart)
 {
     try
     {
         if (SNumber.ToNumber(cart.CustomerID) == 0)
         {
             cart.CustomerID = null;
         }
         string query = "insert into TblCart (CookieID,CustomerID,CreatedDateTime,TotalPrice)" +
                        " values (@CookieID,@CustomerID,@CreatedDateTime,@TotalPrice)" +
                        " SELECT @@IDENTITY";
         int productID = connect.Query <int>(query, new
         {
             cart.CookieID,
             cart.CustomerID,
             cart.CreatedDateTime,
             cart.TotalPrice
         }).Single();
         return(productID);
     }
     catch (Exception ex)
     {
         LogService.WriteException(ex);
         return(0);
     }
 }
예제 #2
0
 public bool Update(TblCart cart)
 {
     try
     {
         if (SNumber.ToNumber(cart.CustomerID) == 0)
         {
             cart.CustomerID = null;
         }
         string query = "update TblCart set CookieID=@CookieID,CustomerID=@CustomerID,ModifiedDateTime=@ModifiedDateTime,TotalPrice=@TotalPrice" +
                        " where CartID=@CartID ";
         return(0 < connect.Execute(query, new
         {
             cart.CookieID,
             cart.CustomerID,
             cart.ModifiedDateTime,
             cart.TotalPrice,
             cart.CartID
         }));
     }
     catch (Exception ex)
     {
         LogService.WriteException(ex);
         return(false);
     }
 }
예제 #3
0
        public JsonResult AddToCart(int Id, String Name, Double Price, String Picture, String SizeName)
        {
            String username = HttpContext.Session.GetString("CURRENTUSER");

            if (SizeName.Equals("Search by Size"))
            {
                return(Json(new { success = false }));
            }
            else
            {
                var checkExist = db.TblCart.Where(c => c.ProductId == Id && c.UserId == username).FirstOrDefault();
                if (checkExist != null)
                {
                    checkExist.Quantity = checkExist.Quantity + 1;
                    db.SaveChanges();
                }
                else
                {
                    TblCart cart = new TblCart();
                    cart.ProductId   = Id;
                    cart.ProductName = Name;
                    cart.Price       = Price;
                    cart.Picture     = Picture;
                    cart.SizeName    = SizeName;
                    cart.Quantity    = 1;
                    cart.UserId      = username;
                    db.TblCart.Add(cart);
                    db.SaveChanges();
                }


                return(Json(new { success = true }));
            }
        }
예제 #4
0
        public CartDto AddTocart(CartDto dto)
        {
            try
            {
                TblCart cart = new TblCart
                {
                    ItemId       = dto.ItemId,
                    PricePerItem = Convert.ToString(dto.PricePerItem),
                    TotalPrice   = Convert.ToString(Convert.ToInt32(dto.PricePerItem) * dto.Quantity),
                    UserId       = dto.UserId,
                    Quantity     = dto.Quantity,
                    CreatedDate  = DateTime.UtcNow,
                };
                _dbContext.Add(cart);
                int save = _dbContext.SaveChanges();
                dto.Id = cart.Id;
            }
            catch
            {
                throw;
            }


            return(dto);
        }
예제 #5
0
 public static int GetNumberQuantityInCart(string cookieID)
 {
     try
     {
         CartItemService cartItemService = new CartItemService();
         CartService     cartSerice      = new CartService();
         int             quantity        = 0;
         TblCart         cart            = cartSerice.GetByCookieID(cookieID);
         if (cart != null)
         {
             List <TblCartItem> cartItems = cartItemService.GetByCartID(cart.CartID);
             if (cartItems != null && cartItems.Count > 0)
             {
                 foreach (var item in cartItems)
                 {
                     quantity += item.NumberVariant;
                 }
             }
         }
         return(quantity);
     }
     catch (Exception ex)
     {
         LogService.WriteException(ex);
         throw;
     }
 }
예제 #6
0
        public ActionResult index(TblCart tblCart)
        {
            try
            {
                string  cookieID        = tblCart.CookieID;
                TblCart cartGetInCookie = cartService.GetByCookieID(cookieID);
                if (cartGetInCookie != null)
                {
                    cartGetInCookie.TotalPriceAddVAT = cartGetInCookie.TotalPrice + (decimal)((double)cartGetInCookie.TotalPrice * 0.1);

                    cartGetInCookie.CartItems = cartItemService.GetByCartID(cartGetInCookie.CartID);
                    if (cartGetInCookie.CartItems != null && cartGetInCookie.CartItems.Count > 0)
                    {
                        if (cartGetInCookie.CartItems.Count == tblCart.CartItems.Count)
                        {
                            for (int i = 0; i < cartGetInCookie.CartItems.Count; i++)
                            {
                                cartGetInCookie.CartItems[i].NumberVariant = tblCart.CartItems[i].NumberVariant;
                                cartItemService.Update(cartGetInCookie.CartItems[i]);
                            }
                        }
                    }
                    cartService.UpdateTotalPrice(cartGetInCookie.CartID);
                    return(RedirectToAction("index", new { message = "update1" }));
                }
            }
            catch (Exception ex)
            {
                LogService.WriteException(ex);
                throw;
            }
            return(RedirectToAction("index", new { message = "update0" }));
        }
예제 #7
0
        public int AddCart(TblCart tblCart)
        {
            tblCart.TotalPrice = tblCart.Price * tblCart.Quantity;

            _context.TblCart.Add(tblCart);
            _context.SaveChanges();
            return(tblCart.Id);
        }
예제 #8
0
 public void UpdateCartitemstatus(CartItemsEntity tblcart)
 {
     if (tblcart != null)
     {
         TblCart tc = new TblCart();
         tc.TblMenuID = tblcart.TblMenuID;
         tc.Price     = tblcart.Price;
         tc.Itemavailabilitystatus = tblcart.Itemavailabilitystatus;
         _context.UpdateCartitemstatus(tc);
     }
 }
예제 #9
0
 public async Task UpdateCartMenuItemPrice(CartItemsEntity tblcart)
 {
     if (tblcart != null)
     {
         TblCart tc = new TblCart();
         tc.TblMenuID = tblcart.TblMenuID;
         tc.Price     = tblcart.Price;
         tc.Itemavailabilitystatus = tblcart.Itemavailabilitystatus;
         await _context.UpdateCartMenuItemPrice(tc);
     }
 }
예제 #10
0
        // GET: client/checkout

        public ActionResult index(string cookieID)
        {
            try
            {
                TblCart cart = cartService.GetByCookieID(cookieID);
                if (cart == null)
                {
                    cookieID = retrieveCookie();
                    return(RedirectToAction("index", new { cookieID = cookieID }));
                }

                cart.CartItems = cartItemService.GetByCartID(cart.CartID);
                if (cart.CartItems == null || cart.CartItems.Count == 0)
                {
                    return(RedirectToAction("index", "cart", new { area = "client" }));
                }
                else
                {
                    foreach (var item in cart.CartItems)
                    {
                        item.Variant = variantService.GetByPrimaryKey(item.VariantID);
                        if (item.Variant != null)
                        {
                            item.Variant.Product = productService.GetByPrimaryKey(item.Variant.ProductID);
                            if (item.Variant.Product != null)
                            {
                                item.Variant.Product.Images = imageService.GetByProductID(item.Variant.Product.ProductID);
                            }
                        }
                    }
                }
                cart.TotalPriceAddVAT = cart.TotalPrice + (decimal)((double)cart.TotalPrice * 0.1);

                CheckoutViewModel checkoutViewModel = new CheckoutViewModel();
                checkoutViewModel.CartID            = cart.CartID;
                checkoutViewModel.CartItems         = cart.CartItems;
                checkoutViewModel.Provinces         = provinceService.GetAll();
                checkoutViewModel.BillingProvinceID = checkoutViewModel.ShippingProvinceID = 1;
                checkoutViewModel.Districts         = districtService.GetByProvinceID(1);
                checkoutViewModel.Districts.Insert(0, new District {
                    DistrictID = 0, DistrictName = "--- Chọn quận huyện ---"
                });
                checkoutViewModel.TotalSubPrice = cart.TotalPriceAddVAT;
                checkoutViewModel.TotalPrice    = checkoutViewModel.TotalSubPrice + checkoutViewModel.TotalShipping;
                checkoutViewModel.CookieID      = cookieID;
                return(View(checkoutViewModel));
            }
            catch (Exception ex)
            {
                LogService.WriteException(ex);
                throw;
            }
        }
예제 #11
0
        public int addVariantToCart(int variantID, int numberVariant)
        {
            try
            {
                string  cookieID = retrieveCookie();
                TblCart cart     = cartService.GetByCookieID(cookieID);
                if (cart == null)
                {
                    cart                 = new TblCart();
                    cart.CookieID        = cookieID;
                    cart.CreatedDateTime = SDateTime.GetYYYYMMddHmmSSNow();

                    cart.CartID = cartService.Insert(cart);
                }
                cart.ModifiedDateTime = SDateTime.GetYYYYMMddHmmSSNow();

                Variant variant = variantService.GetByPrimaryKey(variantID);
                if (variant != null)
                {
                    string where = string.Format("CartID={0} and VariantID={1}", cart.CartID, variantID);
                    List <TblCartItem> cartItems = cartItemService.GetByWhere(where);
                    if (cartItems == null || cartItems.Count == 0)
                    {
                        TblCartItem cartItem = new TblCartItem();
                        cartItem.CartID          = cart.CartID;
                        cartItem.VariantID       = variantID;
                        cartItem.NumberVariant   = numberVariant;
                        cartItem.CreatedDateTime = SDateTime.GetYYYYMMddHmmSSNow();
                        cartItemService.Insert(cartItem);
                    }
                    else
                    {
                        cartItems[0].NumberVariant++;
                        cartItemService.Update(cartItems[0]);
                    }

                    cartService.UpdateTotalPrice(cart.CartID);

                    cartItems = cartItemService.GetByCartID(cart.CartID);
                    if (cartItems != null)
                    {
                        return(cartItems.Count);
                    }
                }

                return(0);
            }
            catch (Exception ex)
            {
                LogService.WriteException(ex);
                throw;
            }
        }
예제 #12
0
        public int UpdateCart(TblCart updateCart)
        {
            var updatecartitems = _context.TblCart.Where(item => item.TblCustomerId.Equals(updateCart.TblCustomerId) &&
                                                         item.TblRestaurantId.Equals(updateCart.TblMenuId) && item.TblRestaurantId.Equals(updateCart.TblRestaurantId)).FirstOrDefault();

            updatecartitems.TblRestaurantId = updateCart.TblRestaurantId;
            updatecartitems.TblCustomerId   = updateCart.TblCustomerId;
            updatecartitems.TblMenuId       = updateCart.TblMenuId;
            updatecartitems.Message         = updateCart.Message;
            _context.SaveChanges();
            return(updateCart.Id);
        }
예제 #13
0
        public async Task <IActionResult> Buy(int id)
        {
            // TODO :: apply user to cart if login success
            TblMember user     = SessionHelper.GetObjectFromJson <TblMember>(HttpContext.Session, "user");
            TblCart   cartExit = dop.TblCarts.Where(x => x.ProductId == id && x.OrderId == null).FirstOrDefault();

            if (cartExit == null)
            {
                TblCart tblCart = new TblCart();
                tblCart.ProductId = id;
                tblCart.Quantity  = 1;
                if (user != null)
                {
                    tblCart.MemberId = user.MemberId;
                }

                //tblCart.Product = productModel.find(id);
                dop.Add(tblCart);
                await dop.SaveChangesAsync();
            }

            /*ProductModel productModel = new ProductModel();
             * if(SessionHelper.GetObjectFromJson<List<TblProduct>>(HttpContext.Session,"cart")==null)
             * {
             *      List<TblProduct> cart = new List<TblProduct>();
             *      var product = productModel.find(id);
             *      product.Quantity = 1;
             *      cart.Add(product);
             *
             *      dop.Add(new TblCart(cart));
             *
             *      SessionHelper.SetObjectAsJson(HttpContext.Session, "cart", cart);
             * }
             * else
             * {
             *      List<TblProduct> cart = SessionHelper.GetObjectFromJson<List<TblProduct>>(HttpContext.Session, "cart");
             *      int index = isExit(id);
             *      if(index != -1)
             *      {
             *              cart[index].Quantity++;
             *      }
             *      else
             *      {
             *              var product = productModel.find(id);
             *              product.Quantity = 1;
             *              cart.Add(product);
             *      }
             *      SessionHelper.SetObjectAsJson(HttpContext.Session, "cart", cart);
             * }*/


            return(Redirect("/Cart"));
        }
예제 #14
0
        public async Task <IActionResult> Remove(int id)
        {
            TblCart tblCart = dop.TblCarts.FirstOrDefault(x => x.CartId == id);

            dop.Remove(tblCart);
            await dop.SaveChangesAsync();

            /*List<TblProduct> cart = SessionHelper.GetObjectFromJson<List<TblProduct>>(HttpContext.Session, "cart");
             * int index = isExit(id);
             * cart.RemoveAt(index);
             * SessionHelper.SetObjectAsJson(HttpContext.Session, "cart", cart);*/
            return(RedirectToAction("Index"));
        }
        public int RemoveCart(int customerID, int?menuID)
        {
            TblCart tblcart = _context.TblCart.Where(ca => ca.TblCustomerID == customerID)
                              .Where(m => m.TblMenuID == menuID).FirstOrDefault();

            if (tblcart != null)
            {
                _context.Set <TblCart>().Remove(tblcart);
                _context.SaveChanges();
                return(1);
            }
            return(0);
        }
        public ActionResult Purchase()
        {
            TblCart userCart = null;

            foreach (TblCart cart in storeDB.TblCarts)
            {
                if (cart.UserId == (Session["user"] as TblUser).UserId)
                {
                    userCart = cart;
                    break;
                }
            }

            DateTime purchaseDate = DateTime.Now;

            List <TblReceipt> model = new List <TblReceipt>();

            foreach (TblCartItem cartItem in userCart.TblCartItems)
            {
                TblReceipt receiptItem = new TblReceipt();

                receiptItem.Amount      = cartItem.Amount;
                receiptItem.DateAndTime = purchaseDate;
                receiptItem.DeviceId    = cartItem.DeviceId;
                receiptItem.UserId      = (Session["user"] as TblUser).UserId;

                string taxValue = System.Configuration.ConfigurationManager.AppSettings["taxValue"];
                int    x;
                int.TryParse(taxValue, out x);

                receiptItem.Tax          = x;
                receiptItem.PriceWithTax = (int)(int.Parse(storeDB.TblDevices.Find(cartItem.DeviceId).Price) * cartItem.Amount * 1.20);

                storeDB.TblReceipts.Add(receiptItem);
                model.Add(receiptItem);
            }

            var items = userCart.TblCartItems;

            userCart.TblCartItems.Clear();

            foreach (TblCartItem cartItem in items)
            {
                storeDB.TblCartItems.Remove(cartItem);
            }

            storeDB.SaveChanges();

            return(View(model));
        }
예제 #17
0
 public TblCart GetByPrimaryKey(int cartID)
 {
     try
     {
         string  query = "select * from TblCart where CartID = " + SNumber.ToNumber(cartID);
         TblCart cart  = connect.Query <TblCart>(query).FirstOrDefault <TblCart>();
         return(cart);
     }
     catch (Exception ex)
     {
         LogService.WriteException(ex);
         return(null);
     }
 }
예제 #18
0
 public TblCart GetByCookieID(string cookieID)
 {
     try
     {
         string  query = string.Format("select * from TblCart where CookieID like N'{0}'", cookieID);
         TblCart cart  = connect.Query <TblCart>(query).FirstOrDefault <TblCart>();
         return(cart);
     }
     catch (Exception ex)
     {
         LogService.WriteException(ex);
         return(null);
     }
 }
예제 #19
0
        public IGernalResult EditFromCart(int cartId, int Countity)
        {
            IGernalResult result = new GernalResult();
            TblCart       cart   = _dbContext.TblCart.Where(w => w.Id == cartId).FirstOrDefault();

            try
            {
                int totalplaceOrderquantiy = 0;

                TblItem         Item  = _dbContext.TblItem.Where(w => w.Id == cart.ItemId).FirstOrDefault();
                List <TblOrder> order = _dbContext.TblOrder.Where(w => w.ItemId == cart.ItemId && w.IsCanceled == false).ToList();
                if (order != null)
                {
                    foreach (var item in order)
                    {
                        int v = item.Quantity + totalplaceOrderquantiy;
                        totalplaceOrderquantiy = v;
                    }
                }
                int avilableNow = Convert.ToInt32(Item.Quantity) - totalplaceOrderquantiy;
                if (totalplaceOrderquantiy == Convert.ToInt32(Item.Quantity))
                {
                    result.Succsefully = false;
                    result.Message     = "Item not availablenow plz try some time later.";
                }
                else if (avilableNow < Countity)
                {
                    result.Succsefully = false;
                    result.Message     = "Now we have avilable only" + avilableNow;
                }
                else
                {
                    int total = Convert.ToInt32(cart.PricePerItem) * Countity;



                    cart.TotalPrice = Convert.ToString(total);
                    cart.Quantity   = Countity;
                    int save = _dbContext.SaveChanges();
                    result.Succsefully = save > 0 ? true : false;
                }
            }
            catch
            {
                result.Succsefully = false;
                result.Message     = "server error.";
            }
            return(result);
        }
        public ActionResult ShowCart()
        {
            TblCart model = null;

            foreach (TblCart cart in storeDB.TblCarts)
            {
                if (cart.UserId == (Session["user"] as TblUser).UserId)
                {
                    model = cart;
                    break;
                }
            }

            return(View(model));
        }
예제 #21
0
        /// <summary>
        /// Adds the product to cart.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns>System.Threading.Tasks.Task&lt;System.Boolean&gt;.</returns>
        public async Task <bool> AddProductToCart(AddProductToCartModel model)
        {
            var cart = new TblCart
            {
                CartId    = Guid.NewGuid(),
                UserId    = model.UserId,
                ProductId = model.ProductId,
                Quantity  = model.Quantity,
            };

            _cartRepository.Insert(cart);
            await _unitOfWork.CommitAsync();

            return(true);
        }
예제 #22
0
        public async Task <IActionResult> Increase(int id)
        {
            TblCart tblCart = dop.TblCarts.FirstOrDefault(x => x.CartId == id);

            tblCart.Quantity = tblCart.Quantity + 1;
            dop.Update(tblCart);
            await dop.SaveChangesAsync();

            /*List<TblProduct> cart = SessionHelper.GetObjectFromJson<List<TblProduct>>(HttpContext.Session, "cart");
             * int index = isExit(id);
             * var product = cart[index];
             * product.Quantity = product.Quantity+1;
             *
             * SessionHelper.SetObjectAsJson(HttpContext.Session, "cart", cart);*/
            return(Redirect("/Cart"));
        }
        public async Task UpdateCartMenuItemPrice(TblCart tblcart)
        {
            if (tblcart != null)
            {
                List <TblCart> cart = await _context.TblCart.Where(ca => ca.TblMenuID == tblcart.TblMenuID).ToListAsync <TblCart>();

                if (cart.Count != 0)
                {
                    foreach (var cartitem in cart)
                    {
                        cartitem.Price = tblcart.Price;
                        //cartitem.status = tblcart.status; price updated
                        _context.SaveChanges();
                    }
                }
            }
        }
        public void UpdateCartitemstatus(TblCart tblcart)
        {
            if (tblcart != null)
            {
                List <TblCart> cart = _context.TblCart.Where(ca => ca.TblMenuID == tblcart.TblMenuID).ToList <TblCart>();

                if (cart.Count != 0)
                {
                    foreach (var cartitem in cart)
                    {
                        cartitem.Price  = tblcart.Price;
                        cartitem.status = tblcart.status;
                        cartitem.Itemavailabilitystatus = tblcart.Itemavailabilitystatus;
                        _context.SaveChanges();
                    }
                }
            }
        }
예제 #25
0
 public bool RemoveFromCart(int cartId, int userId)
 {
     try
     {
         TblCart cart = _dbContext.TblCart.Where(w => w.Id == cartId && w.UserId == userId).FirstOrDefault();
         if (cart != null)
         {
             _dbContext.Remove(cart);
             _dbContext.SaveChanges();
             return(true);
         }
         return(false);
     }
     catch
     {
         throw;
     }
 }
예제 #26
0
        public bool IsAvilableItem(int cartId, int Countity, int itemid)
        {
            bool    avilable = false;
            TblCart cart     = new TblCart();

            if (cartId > 0)
            {
                cart = _dbContext.TblCart.Where(w => w.Id == cartId).FirstOrDefault();
            }
            else
            {
                cart = _dbContext.TblCart.Where(w => w.ItemId == itemid).FirstOrDefault();
            }
            try
            {
                int totalplaceOrderquantiy = 0;

                TblItem         Item  = _dbContext.TblItem.Where(w => w.Id == cart.ItemId).FirstOrDefault();
                List <TblOrder> order = _dbContext.TblOrder.Where(w => w.ItemId == cart.ItemId && w.IsCanceled == false).ToList();
                if (order != null)
                {
                    foreach (var item in order)
                    {
                        int v = item.Quantity + totalplaceOrderquantiy;
                        totalplaceOrderquantiy = v;
                    }
                }
                int avilableNow = Convert.ToInt32(Item.Quantity) - totalplaceOrderquantiy;
                if (totalplaceOrderquantiy == Convert.ToInt32(Item.Quantity))
                {
                    avilable = false;
                }
                else if (avilableNow < Countity)
                {
                    avilable = true;
                }
                return(avilable);
            }
            catch
            {
                throw;
            }
        }
예제 #27
0
 public int GetNumberVariantInCart()
 {
     try
     {
         string  cookieID = retrieveCookie();
         TblCart cart     = cartService.GetByCookieID(cookieID);
         if (cart != null)
         {
             List <TblCartItem> cartItems = cartItemService.GetByCartID(cart.CartID);
             if (cartItems != null)
             {
                 return(cartItems.Count);
             }
         }
     }
     catch (Exception ex)
     {
         LogService.WriteException(ex);
         return(0);
     }
     return(0);
 }
예제 #28
0
        public int PriceChange(TblCart cartEntity)
        {
            try
            {
                var cartprice = _context.TblCart.FirstOrDefault(s => s.TblMenuId.Equals(cartEntity.TblMenuId) &&
                                                                s.TblRestaurantId.Equals(cartEntity.TblRestaurantId)
                                                                );

                if (cartprice != null && cartprice.Id > 0)
                {
                    cartprice.Price      = cartEntity.Price;
                    cartprice.TotalPrice = cartEntity.Price * cartprice.Quantity;
                    _context.SaveChanges();
                    return(cartprice.Id);
                }
                return(0);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #29
0
 public ActionResult removeCartItem(int id)
 {
     try
     {
         TblCartItem cartItem = cartItemService.GetByPrimaryKey(id);
         if (cartItem != null)
         {
             TblCart cart = cartService.GetByPrimaryKey(cartItem.CartID);
             if (cart != null)
             {
                 cartItemService.DeleteByPrimary(id);
                 cartService.UpdateTotalPrice(cart.CartID);
                 return(RedirectToAction("index", new { message = "delete1" }));
             }
         }
         return(RedirectToAction("index", new { message = "delete0" }));
     }
     catch (Exception ex)
     {
         LogService.WriteException(ex);
         throw;
     }
 }
예제 #30
0
 public bool UpdateTotalPrice(int cartID)
 {
     try
     {
         CartItemService cartItemService = new CartItemService();
         VariantService  variantService  = new VariantService();
         TblCart         cart            = GetByPrimaryKey(cartID);
         if (cart != null)
         {
             List <TblCartItem> cartItems  = cartItemService.GetByCartID(cartID);
             decimal            totalPrice = 0;
             if (cartItems != null && cartItems.Count > 0)
             {
                 foreach (var item in cartItems)
                 {
                     Variant variant = variantService.GetByPrimaryKey(item.VariantID);
                     if (variant != null)
                     {
                         totalPrice += (decimal)item.NumberVariant * (variant.VariantPrice != null ? variant.VariantPrice.Value : 0);
                     }
                 }
             }
             cart.TotalPrice = totalPrice;
             if (Update(cart))
             {
                 return(true);
             }
         }
         return(false);
     }
     catch (Exception ex)
     {
         LogService.WriteException(ex);
         return(false);
     }
 }