コード例 #1
0
        public async Task <ActionResult> Order(CartDetailItem model)
        {
            if (UserManager.User != null)
            {
                if (ModelState.IsValid)
                {
                    ShoppingService service = new ShoppingService();
                    Order           order   = await service.order(UserManager.User.Id);

                    ModelState.Clear();

                    if (order != null)
                    {
                        return(this.Json(new
                        {
                            ResponseType = 0,
                            Msg = "Thank you so much for your order!"
                        }));
                    }
                }

                return(this.Json(new
                {
                    ResponseType = 1,
                    Msg = "Something goes wrong, please try again later"
                }));
            }

            return(this.Json(new
            {
                ResponseType = Config.NEED_LOGIN,
                Msg = "Please login first"
            }));
        }
コード例 #2
0
        public async Task <ActionResult> UpdateQuantity(CartDetailItem model)
        {
            if (ModelState.IsValid)
            {
                ShoppingService service        = new ShoppingService();
                CartDetailItem  cartDetailItem = await service.updateQuantity(model);

                ModelState.Clear();
                if (cartDetailItem != null)
                {
                    return(this.Json(new
                    {
                        EnableSuccess = true,
                        SuccessTitle = "Successful!",
                        SuccessMsg = "Thank you so much for your order!"
                    }));
                }
            }

            return(this.Json(new
            {
                EnableError = true,
                ErrorTitle = "Error",
                ErrorMsg = "Something goes wrong, please try again later"
            }));
        }
コード例 #3
0
        public async Task <CartDetailItem> updateQuantity(CartDetailItem item)
        {
            HttpConnection http = new HttpConnection();
            String         url  = Constant.PUT_UPDATE_QUANTITY_URL;

            return(await http.putCartItemAsync(url, item));
        }
コード例 #4
0
        public async Task <CartDetailItem> addCartItem(CartDetailItem item)
        {
            HttpConnection http = new HttpConnection();
            String         url  = Constant.POST_CART_ITEM_URL;

            return(await http.postCartItemAsync(url, item));
        }
コード例 #5
0
        public async Task <CartDetailItem> getCartItemAsync(string path)
        {
            CartDetailItem      obj      = null;
            HttpResponseMessage response = await client.GetAsync(path);

            if (response.IsSuccessStatusCode)
            {
                obj = await response.Content.ReadAsAsync <CartDetailItem>();
            }
            return(obj);
        }
コード例 #6
0
        public async Task <CartDetailItem> putCartItemAsync(string path, CartDetailItem item)
        {
            CartDetailItem      cartItem = null;
            HttpResponseMessage response = await client.PutAsJsonAsync(path, item);

            if (response.IsSuccessStatusCode)
            {
                // Deserialize the updated product from the response body.
                cartItem = await response.Content.ReadAsAsync <CartDetailItem>();
            }
            return(cartItem);
        }
コード例 #7
0
        public async Task <ActionResult> UpdateQuantity(CartDetailItem model)
        {
            if (ModelState.IsValid)
            {
                // update amount to cart detail table'
                if (model.Amount == 0)
                {
                    db.CartDetails.Where(p => p.CartDetailsId == model.CartDetailsId)
                    .ToList().ForEach(p => db.CartDetails.Remove(p));
                    await db.SaveChangesAsync();


                    var list = db.CartDetails.Where(p => p.CartId == model.CartId).ToList();
                    if (list.Count() <= 0)
                    {
                        db.Carts.Where(p => p.CartId == model.CartId)
                        .ToList().ForEach(p => db.Carts.Remove(p));
                    }

                    await db.SaveChangesAsync();
                }
                else
                {
                    CartDetail cartDetail = db.CartDetails.FirstOrDefault(item => item.CartDetailsId == model.CartDetailsId);
                    cartDetail.Amount = (short)(model.Amount);
                    await db.SaveChangesAsync();
                }
                ModelState.Clear();

                return(this.Json(new
                {
                    ResponseType = Config.SUCCESS,
                    Msg = "Update quantity successfully!"
                }));
            }

            return(this.Json(new
            {
                ResponseType = Config.SUCCESS,
                Msg = "Something goes wrong, please try again later"
            }));
        }
コード例 #8
0
ファイル: UserController.cs プロジェクト: hungngo78/HHMarket2
        //public ActionResult Login(String username, String password)
        public async Task <ActionResult> Login([Bind(Include = "Username,Password")] Logon logon)
        {
            if (ModelState.IsValid)
            {
                // Authenticate the user.
                if (UserManager.ValidateUser(logon, Response))
                {
                    /* move temporary shopping cart to DB */
                    string dateOfOpen = string.Empty;

                    // get tmp Cart in cookie
                    HttpCookie reqCartInfoCookies = HttpContext.Request.Cookies["CartInfo"];
                    if (reqCartInfoCookies != null)  // there is a temporary Cart in cookies
                    {
                        dateOfOpen = reqCartInfoCookies["DateOfOpen"].ToString();

                        Cart cart = null;

                        // get existing Cart
                        ShoppingService shoppingService = new ShoppingService();
                        cart = await shoppingService.getCart(UserManager.User.Id);

                        // there is no existing Shopping Cart for this user -> create new Shopping Cart
                        if (cart == null)
                        {
                            cart          = new Cart();
                            cart.UserId   = UserManager.User.Id;
                            cart.DateOpen = DateTime.Parse(dateOfOpen);

                            // add cart into system
                            cart = await shoppingService.addCart(cart);
                        }

                        HttpCookie reqIDListCookies = Request.Cookies["ProductDetailIDlist"];
                        if (reqIDListCookies != null)
                        {
                            string dataAsString = reqIDListCookies.Value;
                            if (!dataAsString.Equals(string.Empty))
                            {
                                List <int> listdata = new List <int>();
                                listdata = dataAsString.Split(',').Select(x => Int32.Parse(x)).ToList();
                                for (int i = 0; i < listdata.Count(); i++)
                                {
                                    HttpCookie reqCartItemCookies = Request.Cookies["CartItems[" + listdata[i].ToString() + "]"];
                                    if (reqCartItemCookies != null)
                                    {
                                        CartItem cookiesItem = new JavaScriptSerializer()
                                                               .Deserialize <CartItem>(reqCartItemCookies.Value);

                                        // get Cart Item of this ProductDetailId in DB
                                        int            productDetailId = listdata[i];
                                        CartDetailItem detail          = await shoppingService
                                                                         .getCartItemByCartIdAndProductDetailsId(cart.CartId, productDetailId);

                                        if (detail == null)
                                        {
                                            detail = new CartDetailItem();

                                            detail.UserId           = UserManager.User.Id;
                                            detail.Amount           = (short)cookiesItem.Amount;
                                            detail.ExtendedPrice    = cookiesItem.Price;
                                            detail.Type             = 0;
                                            detail.ProductDetailsId = listdata[i];
                                            detail.CartId           = cart.CartId;

                                            // add into system
                                            await shoppingService.addCartItem(detail);
                                        }
                                        else
                                        {
                                            detail.Amount += (short)cookiesItem.Amount;

                                            // update into system
                                            await shoppingService.updateQuantity(detail);
                                        }

                                        /* remove cart item of this ProductDetailId in cookies */
                                        var respCartItemscookies = new HttpCookie("CartItems[" + listdata[i].ToString() + "]");
                                        respCartItemscookies.Expires = DateTime.Now.AddDays(-1D);
                                        Response.Cookies.Add(respCartItemscookies);
                                    }
                                }

                                /* update productDetailID list in cookies */
                                HttpCookie respIDListCookies = new HttpCookie("ProductDetailIDlist", "")
                                {
                                    Expires = DateTime.Now.AddDays(1)
                                };
                                HttpContext.Response.Cookies.Add(respIDListCookies);
                            }
                        }
                    }

                    // Redirect to the secure area.
                    return(RedirectToAction("Index", "Category"));
                }
            }

            ViewBag.LoginFailure = 1;
            return(View());
        }
コード例 #9
0
        public async Task <ActionResult> Order(CartDetailItem model)
        {
            if (UserManager.User != null)
            {
                if (ModelState.IsValid)
                {
                    Order order = new Order();
                    order.DeliveryDate = System.DateTime.Now;
                    order.Status       = 0;
                    order.OrderDate    = System.DateTime.Now;
                    order.Note         = "Note of user";
                    order.UserId       = model.UserId;
                    db.Orders.Add(order);
                    //await db.SaveChangesAsync();

                    System.Collections.Generic.List <CartDetailItem> list = new System.Collections.Generic.List <CartDetailItem>();
                    list = (from c in db.CartDetails
                            where c.CartId == model.CartId
                            select new CartDetailItem()
                    {
                        Amount = c.Amount,
                        ExtendedPrice = c.ExtendedPrice,
                        ProductDetailsId = c.ProductDetailsId,
                        CartDetailsId = c.CartDetailsId,
                        CartId = c.CartId
                    }).ToList();

                    for (int i = 0; i < list.Count(); i++)
                    {
                        OrderDetail orderDetail = new OrderDetail();
                        orderDetail.Amount           = list[i].Amount;
                        orderDetail.ExtendedPrice    = list[i].ExtendedPrice;
                        orderDetail.ProductDetailsId = list[i].ProductDetailsId;
                        orderDetail.OrderId          = order.OrderId;
                        db.OrderDetails.Add(orderDetail);

                        //var id = list[i].ProductDetailsId;
                        // var productionDetail = db.ProductDetails.Single(item => item.ProductDetailsId == id);
                        // reduce count in ProductDetail
                        ProductDetail productionDetail = db.ProductDetails.FirstOrDefault(item => item.ProductDetailsId == model.ProductDetailsId);
                        productionDetail.Amount = (short)(productionDetail.Amount - list[i].Amount);
                    }
                    //await db.SaveChangesAsync();

                    // delete cart and cartDetail
                    //var x = db.CartDetails.Where(item => item.CartId == model.CartId);
                    //db.CartDetails.RemoveRange(db.CartDetails.Where(c => c.CartId == model.CartId));
                    db.CartDetails.Where(p => p.CartId == model.CartId)
                    .ToList().ForEach(p => db.CartDetails.Remove(p));

                    //var x1 = db.Carts.FirstOrDefault(item => item.CartId == model.CartId);
                    //db.Carts.Remove(x1);
                    db.Carts.Where(p => p.CartId == model.CartId)
                    .ToList().ForEach(p => db.Carts.Remove(p));
                    await db.SaveChangesAsync();

                    ModelState.Clear();

                    return(this.Json(new
                    {
                        ResponseType = Config.SUCCESS,
                        Msg = "Thank you so much for your order!"
                    }));
                }

                return(this.Json(new
                {
                    ResponseType = Config.SOMETHING_WRONG_WITH_POST_REQUEST,
                    Msg = "Something goes wrong, please try again later"
                }));
            }

            return(this.Json(new
            {
                ResponseType = Config.NEED_LOGIN,
                Msg = "Please login first"
            }));
        }
コード例 #10
0
        public async Task <ActionResult> RemoveCartItem(CartDetailItem model)
        {
            if (ModelState.IsValid)
            {
                if (FormsAuth.UserManager.User != null)
                {
                    // update amount to cart detail table
                    db.CartDetails.Where(p => p.CartDetailsId == model.CartDetailsId)
                    .ToList().ForEach(p => db.CartDetails.Remove(p));
                    await db.SaveChangesAsync();


                    var list = db.CartDetails.Where(p => p.CartId == model.CartId).ToList();
                    if (list.Count() <= 0)
                    {
                        db.Carts.Where(p => p.CartId == model.CartId)
                        .ToList().ForEach(p => db.Carts.Remove(p));
                    }

                    await db.SaveChangesAsync();
                }
                else
                {
                    /* remove cart item of this ProductDetailId in cookies */
                    HttpCookie reqCartItemCookies = Request.Cookies["CartItems[" + model.ProductDetailsId.ToString() + "]"];
                    if (reqCartItemCookies != null)
                    {
                        var c = new HttpCookie("CartItems[" + model.ProductDetailsId.ToString() + "]");
                        c.Expires = DateTime.Now.AddDays(-1D);
                        Response.Cookies.Add(c);
                    }

                    /* update productDetailID list in cookies */
                    HttpCookie reqIDListCookies = Request.Cookies["ProductDetailIDlist"];
                    if (reqIDListCookies != null)
                    {
                        string     dataAsString = reqIDListCookies.Value;
                        List <int> listdata     = new List <int>();
                        listdata = dataAsString.Split(',').Select(x => Convert.ToInt32(x)).ToList();
                        listdata.Remove(model.ProductDetailsId);

                        // Stringify your list
                        var yourListString = String.Join(",", listdata);

                        HttpCookie IDListCookies = new HttpCookie("ProductDetailIDlist", yourListString)
                        {
                            Expires = DateTime.Now.AddDays(1)
                        };
                        HttpContext.Response.Cookies.Add(IDListCookies);
                    }
                }

                ModelState.Clear();
                return(this.Json(new
                {
                    ResponseType = Config.SUCCESS,
                    Msg = "Thank you so much for your order!"
                }));
            }

            return(this.Json(new
            {
                ResponseType = Config.SUCCESS,
                Msg = "Something goes wrong, please try again later"
            }));
        }
コード例 #11
0
        public async Task <ActionResult> RemoveCartItem(CartDetailItem model)
        {
            if (ModelState.IsValid)
            {
                if (FormsAuth.UserManager.User != null)
                {
                    ShoppingService service = new ShoppingService();
                    model.Amount = 0;
                    //CartDetailItem cartDetailItem = await service.updateQuantity(model);
                    int cartDetailId = await service.removeCartItem(model.CartDetailsId);

                    if (cartDetailId <= 0)
                    {
                        return(this.Json(new
                        {
                            EnableError = true,
                            ErrorTitle = "Error",
                            ErrorMsg = "Something goes wrong, please try again later"
                        }));
                    }
                }
                else
                {
                    /* remove cart item of this ProductDetailId in cookies */
                    HttpCookie reqCartItemCookies = Request.Cookies["CartItems[" + model.ProductDetailsId.ToString() + "]"];
                    if (reqCartItemCookies != null)
                    {
                        var c = new HttpCookie("CartItems[" + model.ProductDetailsId.ToString() + "]");
                        c.Expires = DateTime.Now.AddDays(-1D);
                        Response.Cookies.Add(c);
                    }

                    /* update productDetailID list in cookies */
                    HttpCookie reqIDListCookies = Request.Cookies["ProductDetailIDlist"];
                    if (reqIDListCookies != null)
                    {
                        string     dataAsString = reqIDListCookies.Value;
                        List <int> listdata     = new List <int>();
                        listdata = dataAsString.Split(',').Select(x => Convert.ToInt32(x)).ToList();
                        listdata.Remove(model.ProductDetailsId);

                        // Stringify your list
                        var yourListString = String.Join(",", listdata);

                        HttpCookie IDListCookies = new HttpCookie("ProductDetailIDlist", yourListString)
                        {
                            Expires = DateTime.Now.AddDays(1)
                        };
                        HttpContext.Response.Cookies.Add(IDListCookies);
                    }
                }

                ModelState.Clear();
                return(this.Json(new
                {
                    EnableSuccess = true,
                    SuccessTitle = "Successful!",
                    SuccessMsg = "Thank you so much for your order!"
                }));
            }

            return(this.Json(new
            {
                EnableError = true,
                ErrorTitle = "Error",
                ErrorMsg = "Something goes wrong, please try again later"
            }));
        }
コード例 #12
0
        // Get
        public async Task <ActionResult> Index()
        {
            ShoppingService   service        = new ShoppingService();
            ProductionService productService = new ProductionService();
            ShoppingCart      shoppingCart   = new ShoppingCart();

            if (FormsAuth.UserManager.User != null)
            {
                /*{
                 *  Amount,
                 *  CartId,
                 *  Type,
                 *  CartDetailsId,
                 *  ExtendedPrice,
                 *  ProductDetailsId,
                 *  Price,
                 *  Picture,
                 *  ProductName,
                 *  ProductID,
                 *  Color,
                 *  UserId,
                 *  TotalAmountProduction
                 * }*/
                // get all shopping cart items of current user
                shoppingCart.listItemCart = await service.getCartItemsByUserId(UserManager.User.Id);
            }
            else  // get from Cookie
            {
                HttpCookie reqCookies;
                HttpCookie reqIDListCookies = Request.Cookies["ProductDetailIDlist"];
                if (reqIDListCookies != null)
                {
                    string dataAsString = reqIDListCookies.Value;
                    if (!dataAsString.Equals(string.Empty))
                    {
                        List <int>      listdata     = new List <int>();
                        List <CartItem> listCartItem = new List <CartItem>();

                        listdata = dataAsString.Split(',').Select(x => Convert.ToInt32(x)).ToList();
                        for (int i = 0; i < listdata.Count(); i++)
                        {
                            CartItem item = new CartItem();
                            item.ProductDetailsId = listdata[i];

                            reqCookies = Request.Cookies["CartItems[" + item.ProductDetailsId.ToString() + "]"];
                            if (reqCookies != null)
                            {
                                CartItem cookiesItem = new JavaScriptSerializer().Deserialize <CartItem>(reqCookies.Value);

                                item.Amount = cookiesItem.Amount;
                                item.Price  = cookiesItem.Price;

                                listCartItem.Add(item);
                            }
                        }

                        //
                        if (listCartItem.Count() > 0)
                        {
                            List <CartDetailItem> cartDetailItemList = new List <CartDetailItem>();

                            // for each cookies item
                            foreach (CartItem cookiesItem in listCartItem)
                            {
                                CartDetailItem cartDetailItem = new CartDetailItem();

                                // get more information from product & productDetails tables in Database
                                ProductionDetail productDetail = await productService.getProductDetailByProductDetailsIds(cookiesItem.ProductDetailsId);

                                Production product = await productService.getProductionByProductDetailsId(cookiesItem.ProductDetailsId);

                                cartDetailItem.ProductDetailsId      = cookiesItem.ProductDetailsId;
                                cartDetailItem.Price                 = productDetail.Price;
                                cartDetailItem.Picture               = productDetail.Picture;
                                cartDetailItem.Color                 = productDetail.Color;
                                cartDetailItem.TotalAmountProduction = productDetail.Amount;
                                cartDetailItem.Amount                = cookiesItem.Amount;
                                cartDetailItem.ExtendedPrice         = cookiesItem.Price;
                                cartDetailItem.CartId                = 0;
                                cartDetailItem.Type          = 0;
                                cartDetailItem.CartDetailsId = 0;
                                cartDetailItem.ProductID     = product.ProductId;
                                cartDetailItem.ProductName   = product.ProductionName;
                                cartDetailItem.UserId        = 0;

                                cartDetailItemList.Add(cartDetailItem);
                            }

                            shoppingCart.listItemCart = cartDetailItemList;
                        }
                    }
                }
            }

            return(View(shoppingCart));
        }
コード例 #13
0
        public async Task <ActionResult> AddToCart(CartItem item)
        {
            if (ModelState.IsValid)
            {
                if (UserManager.User != null)  // If user has loged in already
                {
                    ShoppingService service = new ShoppingService();

                    CartDetailItem cartDetailItem = new CartDetailItem();
                    cartDetailItem.UserId           = UserManager.User.Id;
                    cartDetailItem.ProductDetailsId = item.ProductDetailsId;
                    cartDetailItem.Amount           = 1;
                    cartDetailItem.ExtendedPrice    = item.Price;
                    cartDetailItem.Type             = 0;

                    /* add cart item into system */
                    cartDetailItem = await service.addCartItem(cartDetailItem);

                    if (cartDetailItem == null)
                    {
                        return(this.Json(new
                        {
                            EnableError = true,
                            ErrorTitle = "Error",
                            ErrorMsg = "Something goes wrong, please try again later"
                        }));
                    }
                }
                else     // user hasn't loged in
                {
                    // get tmp Cart in cookie
                    string     dateOfOpen = string.Empty;
                    HttpCookie reqCookies = Request.Cookies["CartInfo"];
                    if (reqCookies != null)  // there is a temporary Cart in cookies
                    {
                        dateOfOpen = reqCookies["DateOfOpen"].ToString();

                        /* save Cart Item in cookie */
                        // read saved cart item for given ProductDetailId
                        HttpCookie reqCartItemCookies = Request.Cookies["CartItems[" + item.ProductDetailsId.ToString() + "]"]; // cartItem from request
                        HttpCookie respCartItemCookie;                                                                          // cartItem in response
                        if (reqCartItemCookies != null)
                        {
                            CartItem mItem = new JavaScriptSerializer().Deserialize <CartItem>(reqCartItemCookies.Value);
                            mItem.Amount = (short)(mItem.Amount + item.Amount);
                            string myObjectJson = new JavaScriptSerializer().Serialize(mItem);
                            respCartItemCookie = new HttpCookie("CartItems[" + item.ProductDetailsId.ToString() + "]", myObjectJson)
                            {
                                Expires = DateTime.Now.AddDays(1)
                            };
                        }
                        else
                        {
                            item.Amount = 1;
                            string myObjectJson = new JavaScriptSerializer().Serialize(item);
                            respCartItemCookie = new HttpCookie("CartItems[" + item.ProductDetailsId + "]", myObjectJson)
                            {
                                Expires = DateTime.Now.AddDays(1)
                            };
                        }
                        HttpContext.Response.Cookies.Add(respCartItemCookie);

                        /* add productDetailID in cookies */
                        HttpCookie reqIDListCookies = Request.Cookies["ProductDetailIDlist"];
                        if (reqIDListCookies != null)
                        {
                            string     yourListString = string.Empty;
                            string     dataAsString   = reqIDListCookies.Value;
                            List <int> listdata       = new List <int>();
                            if (!dataAsString.Equals(string.Empty))
                            {
                                listdata = dataAsString.Split(',').Select(x => Convert.ToInt32(x)).ToList();
                            }
                            if (!listdata.Contains(item.ProductDetailsId))
                            {
                                listdata.Add(item.ProductDetailsId);
                            }
                            // Stringify your list
                            yourListString = String.Join(",", listdata);
                            HttpCookie IDListCookies = new HttpCookie("ProductDetailIDlist", yourListString)
                            {
                                Expires = DateTime.Now.AddDays(1)
                            };
                            HttpContext.Response.Cookies.Add(IDListCookies);
                        }
                        else
                        {
                            List <int> listdata = new List <int>();
                            listdata.Add(item.ProductDetailsId);

                            // Stringify your list
                            var        yourListString = String.Join(",", listdata);
                            HttpCookie IDListCookies  = new HttpCookie("ProductDetailIDlist", yourListString)
                            {
                                Expires = DateTime.Now.AddDays(1)
                            };
                            HttpContext.Response.Cookies.Add(IDListCookies);
                        }
                    }
                    else  // There is not any tmp Shopping Cart for this user
                    {
                        // create new Shopping Cart in Cookie
                        HttpCookie cartCookie = new HttpCookie("CartInfo")
                        {
                            Expires = DateTime.Now.AddYears(1)
                        };
                        cartCookie["DateOfOpen"] = DateTime.Now.ToString();
                        HttpContext.Response.Cookies.Add(cartCookie);

                        // save Cart Item in cookie
                        item.Amount = 1;
                        string     myObjectJson   = new JavaScriptSerializer().Serialize(item);
                        HttpCookie cartItemCookie = new HttpCookie("CartItems[" + item.ProductDetailsId + "]", myObjectJson)
                        {
                            Expires = DateTime.Now.AddDays(1)
                        };
                        HttpContext.Response.Cookies.Add(cartItemCookie);

                        /* add productDetailID into cookies */
                        List <int> listdata = new List <int>();
                        listdata.Add(item.ProductDetailsId);
                        // Stringify your list
                        var        yourListString = String.Join(",", listdata);
                        HttpCookie IDListCookies  = new HttpCookie("ProductDetailIDlist", yourListString)
                        {
                            Expires = DateTime.Now.AddDays(1)
                        };
                        HttpContext.Response.Cookies.Add(IDListCookies);
                    }
                }

                ModelState.Clear();
                return(this.Json(new
                {
                    EnableSuccess = true,
                    SuccessTitle = "Successful!",
                    SuccessMsg = "Add cart successfully order!"
                }));
            }

            return(this.Json(new
            {
                EnableError = true,
                ErrorTitle = "Error",
                ErrorMsg = "Something goes wrong, please try again later"
            }));
        }
コード例 #14
0
 public bool AddItemToCart([FromBody] CartDetailItem cartObj)
 {
     return(dataAccess.AddItemHandler(cartObj.cartID, cartObj.productID));
 }