Ejemplo n.º 1
0
 public CartItemBO Create(CartBO cart, ProductBO prod)
 {
     using (var uow = facade.UnitOfWork)
     {
         CartItemBO cartItem = new CartItemBO()
         {
             Cart    = cart,
             Product = prod
         };
         _newCartItem = uow.CartItemRepository.Create(cartItemConv.Convert(cartItem));
         uow.Complete();
         return(cartItemConv.Convert(_newCartItem));
     }
 }
 public IActionResult Put(int id, [FromBody] CartItemBO cartItem)
 {
     if (id != cartItem.Id)
     {
         return(StatusCode(405, "Path id does not match cart ID json object"));
     }
     try
     {
         return(Ok(facade.CartItemService.Update(cartItem)));
     }
     catch (InvalidOperationException e)
     {
         return(StatusCode(404, e.Message));
     }
 }
Ejemplo n.º 3
0
 public CartItem Convert(CartItemBO cartItem)
 {
     if (cartItem == null)
     {
         return(null);
     }
     {
         return(new CartItem()
         {
             Id = cartItem.Id,
             Cart = cartCon.Convert(cartItem.Cart),
             CartId = cartItem.CartId,
             Product = productCon.Convert(cartItem.Product),
             ProductId = cartItem.ProductId
         });
     }
 }
Ejemplo n.º 4
0
 public CartItemBO Create(ProductBO prod)
 {
     using (var uow = facade.UnitOfWork)
     {
         Cart       cart     = uow.CartRepository.Get(2);
         CartItemBO cartItem = new CartItemBO()
         {
             CartId = cart.Id,
             // Cart = cartConv.Convert(cart),
             ProductId = prod.Id,
             //Product = prod
         };
         _newCartItem = uow.CartItemRepository.Create(cartItemConv.Convert(cartItem));
         uow.Complete();
         return(cartItemConv.Convert(_newCartItem));
     }
 }
Ejemplo n.º 5
0
        public CartItemBO Update(CartItemBO cartItem)
        {
            using (var uow = facade.UnitOfWork)
            {
                var cartItemFromDb = uow.CartItemRepository.Get(cartItem.Id);
                if (cartItemFromDb == null)
                {
                    throw new InvalidOperationException("Cart not found");
                }

                cartItemFromDb.Id        = cartItem.Id;
                cartItemFromDb.Cart      = cartConv.Convert(cartItem.Cart);
                cartItemFromDb.CartId    = cartItem.CartId;
                cartItemFromDb.Product   = prodConv.Convert(cartItem.Product);
                cartItemFromDb.ProductId = cartItem.ProductId;

                uow.Complete();

                return(cartItemConv.Convert(cartItemFromDb));
            }
        }
Ejemplo n.º 6
0
        public ActionResult Checkout(FormCollection form)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var lstIP = CommonHelper.GetIPAddresses();

                    OrderBO order = new OrderBO();
                    order.id         = DateTime.Now.Ticks.ToString();
                    order.createdate = DateTime.Now;
                    order.fullname   = form["fullname"].ToString();

                    int districtID = Convert.ToInt32(form["district"].ToString());
                    int provinceID = Convert.ToInt32(form["province"].ToString());
                    int wardID     = Convert.ToInt32(form["ward"].ToString());
                    var provinceBO = LocationDAO.GetProvinceByID(provinceID);
                    var districtBO = LocationDAO.GetDistrictByID(districtID);
                    var wardBO     = LocationDAO.GetWardByID(wardID);



                    order.district = districtBO.name;
                    order.province = provinceBO.name;
                    order.ward     = wardBO.name;

                    order.email       = form["email"].ToString();
                    order.phone       = form["phone"].ToString();
                    order.fulladdress = form["orderfulladdress"].ToString();

                    order.note = form["ordernote"].ToString();
                    var listItemKey = form["listitemkey"].Split('|');
                    if (listItemKey == null || listItemKey.Count() <= 0 ||
                        String.IsNullOrEmpty(order.fullname) ||
                        String.IsNullOrEmpty(order.phone) || String.IsNullOrEmpty(order.fulladdress) ||
                        String.IsNullOrEmpty(order.district) || String.IsNullOrEmpty(order.province) ||
                        String.IsNullOrEmpty(order.ward))
                    {//phai dien day du thong tin
                        return(RedirectToAction("Checkout"));
                    }
                    //get list item
                    List <CartSession> lstCartItem = new List <CartSession>();
                    lstCartItem = Session["fancycart"] as List <CartSession>;
                    if (lstCartItem == null)
                    {
                        return(RedirectToAction("Checkout"));
                    }
                    List <CartItemBO> lstCartItemBO = new List <CartItemBO>();
                    foreach (var item in lstCartItem)
                    {
                        CartItemBO cartItem = JsonConvert.DeserializeObject <CartItemBO>(JsonConvert.SerializeObject(item));
                        lstCartItemBO.Add(cartItem);
                    }
                    order.listitem = lstCartItemBO;

                    //check payment method
                    var payment = form["payment_method"];
                    if (payment.ToLower().Trim() == "bacs")
                    {
                        order.paymenttype = 2;
                    }
                    else
                    {
                        order.paymenttype = 1;
                    }

                    //tính discount
                    if (order.paymenttype == 2)
                    {
                        order.totaldiscount = order.listitem.Sum(x => x.FinalPrice) * 5 / 100;
                    }
                    order.iporder    = lstIP != null && lstIP.Count() > 0 ? lstIP.First() : "";
                    order.status     = 1;
                    order.statusname = "Chưa xử lý";

                    //insert to mongodb

                    string error  = "";
                    var    result = OrderDAO.CreateOrder(order, ref error);
                    if (result)
                    {
                        //remove item in cart
                        lstCartItem.Clear();
                        #region create account
                        //add user vào thông tin tài khoản luôn
                        //check đã tồn tại username
                        string username = !String.IsNullOrEmpty(order.email) ? order.email : order.phone;
                        var    userBO   = UserDAO.GetUserByUserNameNotAdmin(username);
                        if (userBO != null && userBO.id > 0)
                        {
                            return(RedirectToAction("ChekoutSuccess", new { orderid = order.id }));
                        }

                        UserBO user = new UserBO();
                        user.username    = username;
                        user.password    = "******";//123456
                        user.phone       = order.phone;
                        user.isactive    = 1;
                        user.role        = "customer";
                        user.fullname    = order.fullname;
                        user.address     = order.fulladdress + ", " + order.ward + ", " + order.district + ", " + order.province;
                        user.email       = order.email;
                        user.createddate = DateTime.Now;
                        user.note        = "User được tạo tự động khi submit đơn hàng thành công";
                        string errorMessage = String.Empty;
                        result = UserDAO.CreateUser(user, ref errorMessage);
                        #endregion
                    }

                    return(RedirectToAction("ChekoutSuccess", new { orderid = order.id }));
                }
                else
                {
                    List <CartSession> lstCartItem = Session["fancycart"] as List <CartSession>;
                    if (lstCartItem == null)
                    {
                        lstCartItem = new List <CartSession>();
                    }
                    if (lstCartItem.Count <= 0)
                    {
                        return(RedirectToAction("Index"));
                    }

                    //load danh sách Province
                    var listProvince = LocationDAO.GetListProvinces();
                    ViewBag.ListProvince = listProvince;
                    ViewBag.ListCartItem = lstCartItem;
                    var commonInfo = LocationDAO.GetCommonInfoByID("commoninfo");
                    ViewBag.CommonInfo = commonInfo;

                    return(View("Checkout"));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", "* Quý khách vui lòng nhập đầy đủ thông tin để gửi đơn hàng ạ!");
                List <CartSession> lstCartItem = Session["fancycart"] as List <CartSession>;
                if (lstCartItem == null)
                {
                    lstCartItem = new List <CartSession>();
                }
                if (lstCartItem.Count <= 0)
                {
                    return(RedirectToAction("Index"));
                }

                //load danh sách Province
                var listProvince = LocationDAO.GetListProvinces();
                ViewBag.ListProvince = listProvince;
                ViewBag.ListCartItem = lstCartItem;
                var commonInfo = LocationDAO.GetCommonInfoByID("commoninfo");
                ViewBag.CommonInfo = commonInfo;

                return(View("Checkout"));
            }
        }