コード例 #1
0
ファイル: CartController.cs プロジェクト: KidUser/Fashionex
        //
        // GET: /Cart/Details/5
        public ActionResult CheckoutDetails()
        {
            var cartOnHold = (List <ShoppingCart>)(System.Web.HttpContext.Current.Session["userShoppingCart"]);

            using (CrossOverShoppingCartDBEntities ce = new CrossOverShoppingCartDBEntities())
            {
                var cartItemIds      = cartOnHold.Select(c => c.ProductID).ToList();
                var products         = ce.Products.ToList();
                var viewCartProducts = products.Where(pr => (pr.IsActive.ToLower().Equals("y")) && cartItemIds.Contains(pr.ProductID)).ToList();

                List <CartViewModels> carDetModel = new List <CartViewModels>();
                foreach (var item in cartOnHold)
                {
                    var product = viewCartProducts.Find(p => p.ProductID == item.ProductID);
                    var cvm     = new CartViewModels();
                    cvm.ProductID   = product.ProductID;
                    cvm.ProductName = product.ProductName;
                    cvm.Quantity    = item.ProductQuantity;
                    cvm.Price       = product.Price;
                    carDetModel.Add(cvm);
                }
                decimal cartTotalPrice = 0;
                carDetModel.ForEach(i => { cartTotalPrice += i.TotalPrice; });
                ViewBag.TotalPrice = cartTotalPrice;
                return(View("CheckoutDetails", carDetModel));
            }
        }
コード例 #2
0
        // GET: Cart
        public ActionResult Index()
        {
            string user_name = User.Identity.GetUserName();

            var resultCart         = db.CartModels.SingleOrDefault(b => b.Email == user_name);
            var resultProductsJoin = db.ProductsChartModels.Where(s => s.CartId == resultCart.Id).ToList();

            var resultProducts = db.ProductsModels.Join(db.ProductsChartModels, s => s.Id, sa => sa.ProductId, (s, sa) => new { products = s, productsJoin = sa }).Select(ssa => ssa.products);

            var model = new CartViewModels()
            {
                Cart = resultCart,

                ProductsJoin = resultProductsJoin,

                Products = resultProducts
            };

            return(View(model));
        }
コード例 #3
0
        public ActionResult OrderDetails(int?existingCartID)
        {
            updateSession();
            ViewBag.ID = existingCartID;

            //Get all the cart items
            List <CartItem> cartItemList = db.CartItems.Where(x => x.cartID == existingCartID).ToList();

            List <Item> itemList           = new List <Item>();
            List <bool> checkItemAvailable = new List <bool>();

            //Get all the item details and store it in the list;
            IIterator <CartItem> iter = new IteratorGeneric <CartItem>(cartItemList);

            while (!iter.IsDone())
            {
                int?newItemID = iter.current().itemID;
                if (newItemID != null)
                {
                    Item item = db.Items.SingleOrDefault(x => x.itemID == newItemID);
                    itemList.Add(item);

                    iter.Next();
                }
            }

            //Create a new model to contain all the data..
            List <CartViewModels> viewModel = new List <CartViewModels>();

            var cartData      = new CartViewModels();
            var cartDataCarts = new Cart();

            cartDataCarts      = db.Carts.SingleOrDefault(x => x.cartID == existingCartID);
            cartData.cartItems = cartItemList;
            cartData.items     = itemList;
            cartData.carts     = cartDataCarts;

            viewModel.Add(cartData);

            return(View(viewModel));
        }
コード例 #4
0
        private CartViewModels CartViewModels(Cart shoppingCart)
        {
            var productList = new List <CartProduct>();

            foreach (var item in shoppingCart.Lines)
            {
                var product = _appRepository.GetSingle <Products>(m => m.ProductId == item.Id);
                if (product == null)
                {
                    continue;
                }
                var categoryName = _appRepository.GetSingle <Categories>(m => m.CategoryId == product.CategoryId).Name;
                var price        = (product.Price - ((product.Price * product.Promotion) / 100)) ?? product.Price;
                var priceFloored = Math.Floor((price ?? 0) * 100) / 100;
                productList.Add(new CartProduct
                {
                    Id           = product.ProductId,
                    Description  = product.Description,
                    Name         = product.Name,
                    Price        = priceFloored.ToString("c"),
                    Quantity     = item.Quantity,
                    TotalValue   = (priceFloored * item.Quantity).ToString("c"),
                    Image        = product.IconName ?? "NoPhoto_small",
                    MaxQuantity  = product.Quantity ?? 0,
                    CategoryName = categoryName,
                    Packing      = product.Packing
                });
            }
            var model = new CartViewModels
            {
                CartProductsList = productList,
                TotalValue       = CalcTotalValue(shoppingCart).ToString("c").Replace(",", ".")
            };

            return(model);
        }
コード例 #5
0
        //
        // GET: /Cart/Details/5
        public ActionResult CheckoutDetails()
        {
            var cartOnHold = (ShoppingCart)(System.Web.HttpContext.Current.Session["userShoppingCart"]);
            List <CartViewModels> carDetModel = new List <CartViewModels>();

            using (FashioNEXDBEntities ce = new FashioNEXDBEntities())
            {
                var cartItemIds      = cartOnHold.ShoppingCart_Item.Select(c => c.ProductID).ToList();
                var products         = ce.PRODUCTS.ToList();
                var viewCartProducts = products.Where(pr => (pr.IsActive.ToLower().Equals("y")) && cartItemIds.Contains(pr.ProductID)).ToList();

                carDetModel = new List <CartViewModels>();
                foreach (var item in cartOnHold.ShoppingCart_Item)
                {
                    var product = viewCartProducts.Find(p => p.ProductID == item.ProductID);
                    var cvm     = new CartViewModels();
                    cvm.ProductName = product.ProductName;
                    cvm.Quantity    = item.ProductQuantity;
                    cvm.Price       = product.Price;
                    carDetModel.Add(cvm);
                }
            }
            return(View("CheckoutDetails", carDetModel));
        }
コード例 #6
0
        public ActionResult Index()
        {
            updateSession();

            createNewCart();

            //Get a MAIN single cart ID
            //Get all the cart items
            int             currentCartID = Convert.ToInt32(Session["currentCart"]);
            List <CartItem> cartItemList  = db.CartItems.Where(x => x.cartID == currentCartID).ToList();

            List <Item> itemList           = new List <Item>();
            List <bool> checkItemAvailable = new List <bool>();

            //Get all the item details and store it in the list;
            List <bool>          itemListCheck = new List <bool>();
            IIterator <CartItem> iter          = new IteratorGeneric <CartItem>(cartItemList);

            while (!iter.IsDone())
            {
                int?newItemID = iter.current().itemID;
                if (newItemID != null)
                {
                    Item item = db.Items.SingleOrDefault(x => x.itemID == newItemID);
                    if (item.iQuantity < iter.current().quantity)
                    {
                        itemListCheck.Add(false);
                    }
                    else
                    {
                        itemListCheck.Add(true);
                    }
                    itemList.Add(item);

                    iter.Next();
                }
            }

            //Create a new model to contain all the data..
            List <CartViewModels> viewModel = new List <CartViewModels>();

            var updateUsers = db.Users.Single(x => x.Username == System.Web.HttpContext.Current.User.Identity.Name);

            var cartData      = new CartViewModels();
            var cartDataCarts = new Cart();

            cartDataCarts      = db.Carts.SingleOrDefault(x => x.cartID == currentCartID);
            cartData.cartItems = cartItemList;
            cartData.items     = itemList;

            double discountPercent = 0;
            double deliveryCharge  = 20;

            if (System.Web.HttpContext.Current.User.IsInRole("PremiumUser"))
            {
                discountPercent = 20;
                deliveryCharge  = 0;
            }
            else if (System.Web.HttpContext.Current.User.IsInRole("BasicUser"))
            {
                discountPercent = 10;
            }

            //Set default carts values
            cartDataCarts.gst             = 7;
            cartDataCarts.discountPercent = discountPercent;
            cartDataCarts.subTotal        = Convert.ToDouble(db.CartItems.AsEnumerable().Where(x => x.cartID == currentCartID).Sum(x => x.price));
            cartDataCarts.discountAmount  = cartDataCarts.subTotal * cartDataCarts.discountPercent / 100.0;
            cartDataCarts.deliveryCharge  = deliveryCharge;
            cartDataCarts.totalPrice      = (cartDataCarts.subTotal + deliveryCharge - cartDataCarts.discountAmount) * (1 + (cartDataCarts.gst / 100.0));

            cartData.carts = cartDataCarts;

            viewModel.Add(cartData);
            ViewBag.check = itemListCheck;
            return(View(viewModel));
        }
コード例 #7
0
        public ActionResult OrderSummary()
        {
            updateSession();

            //Get a MAIN single cart ID
            //Get all the cart items
            int             currentCartID = Convert.ToInt32(Session["currentCart"]);
            List <CartItem> cartItemList  = db.CartItems.Where(x => x.cartID == currentCartID).ToList();

            List <Item> itemList = new List <Item>();

            //Get all the item details and store it in the list;
            IIterator <CartItem> iter = new IteratorGeneric <CartItem>(cartItemList);

            while (!iter.IsDone())
            {
                int?newItemID = iter.current().itemID;
                if (newItemID != null)
                {
                    Item newItem = db.Items.SingleOrDefault(x => x.itemID == newItemID);
                    itemList.Add(newItem);

                    //Minus Item Quantity
                    newItem.iQuantity -= 1;
                    itemGateway.Update(newItem);

                    iter.Next();
                }
            }

            //Create a new model to contain all the data..

            List <CartViewModels> viewModel = new List <CartViewModels>();

            var cartData = new CartViewModels();

            cartData.carts     = db.Carts.SingleOrDefault(x => x.cartID == currentCartID);
            cartData.cartItems = cartItemList;
            cartData.items     = itemList;

            double discountPercent = 0;
            double deliveryCharge  = 20;

            if (System.Web.HttpContext.Current.User.IsInRole("PremiumUser"))
            {
                discountPercent = 20;
                deliveryCharge  = 0;
            }
            else if (System.Web.HttpContext.Current.User.IsInRole("BasicUser"))
            {
                discountPercent = 10;
            }

            //Set default carts values
            cartData.carts.gst             = 7;
            cartData.carts.discountPercent = discountPercent;
            cartData.carts.subTotal        = Convert.ToDouble(db.CartItems.AsEnumerable().Where(x => x.cartID == currentCartID).Sum(x => x.price));
            cartData.carts.discountAmount  = cartData.carts.subTotal * cartData.carts.discountPercent / 100.0;
            cartData.carts.deliveryCharge  = deliveryCharge;
            cartData.carts.totalPrice      = (cartData.carts.subTotal + deliveryCharge - cartData.carts.discountAmount) * (1 + (cartData.carts.gst / 100.0));
            cartData.carts.dateOfPurchase  = DateTime.Now;

            //Update carts value to existing cart
            cartGateway.Update(cartData.carts);

            //Clear current user shopping cart
            Session["currentCart"] = 0;
            var updateUser = db.Users.Single(x => x.Username == System.Web.HttpContext.Current.User.Identity.Name);

            updateUser.currentCart = 0;
            userGateway.Update(updateUser);


            createNewCart();


            viewModel.Add(cartData);
            return(View());
        }
コード例 #8
0
        public async Task <IActionResult> AddToCart(OrderViewModels model)
        {
            if (User.Identity.IsAuthenticated == true)
            {
                var user = await _userManager.GetUserAsync(HttpContext.User);

                // User logined
                var cart = _context.Carts
                           .SingleOrDefault(x => string.IsNullOrEmpty(x.Status) &&
                                            x.UserId == user.Id);

                if (cart == null)
                {
                    // Create cart
                    cart = new Cart
                    {
                        CreatedDate         = DateTime.Now,
                        CustomerName        = user.UserName,
                        CustomerEmail       = user.Email,
                        UserId              = user.Id,
                        Total               = 0,
                        Status              = null,
                        CustomerPhoneNumber = user.PhoneNumber
                    };
                    _context.Entry(cart).State = Microsoft.EntityFrameworkCore.EntityState.Added;
                }
                // Create order
                var order = new Order
                {
                    UserId    = user.Id,
                    ProductId = model.Id,
                    CartId    = cart.Id,
                    Quantity  = model.Quantity,
                    Buy       = false
                };
                _context.Entry(order).State = Microsoft.EntityFrameworkCore.EntityState.Added;

                await _context.SaveChangesAsync();

                var models = _context.Carts
                             .Include(x => x.Orders)
                             .ThenInclude(x => x.Product)
                             .SingleOrDefault(x => string.IsNullOrEmpty(x.Status) &&
                                              x.UserId == user.Id);
                if (models != null)
                {
                    var cartViewModels = new CartViewModels
                    {
                        Id         = models.Id,
                        ItemsCount = models.Orders.Count,
                        Total      = models.Orders.Sum(x => x.GetTotal()),
                        Status     = null
                    };

                    return(Json(new
                    {
                        success = 1,
                        itemCount = cartViewModels.ItemsCount,
                        total = cartViewModels.TotalCurency()
                    }));
                }
            }
            else
            {
                if (HttpContext.Session.GetString("SESSION_CART") == null || string.IsNullOrEmpty(HttpContext.Session.GetString("SESSION_CART")) == true)
                {
                    // Create cart
                    var cart = new Cart
                    {
                        CreatedDate = DateTime.Now,
                        Total       = 0,
                        Status      = null,
                    };
                    // Create order
                    var order = new Order
                    {
                        Id        = 1,
                        ProductId = model.Id,
                        CartId    = cart.Id,
                        Quantity  = model.Quantity,
                        Buy       = false
                    };
                    cart.Orders.Add(order);
                    HttpContext.Session.SetString("SESSION_CART", JsonConvert.SerializeObject(cart));
                }
                else
                {
                    var cart = JsonConvert.DeserializeObject <Cart>(HttpContext.Session.GetString("SESSION_CART"));
                    // Create order
                    var order = new Order
                    {
                        Id        = cart.Orders.Count() + 1,
                        ProductId = model.Id,
                        CartId    = cart.Id,
                        Quantity  = model.Quantity,
                        Buy       = false
                    };
                    cart.Orders.Add(order);
                    HttpContext.Session.SetString("SESSION_CART", JsonConvert.SerializeObject(cart));
                }


                var models = JsonConvert.DeserializeObject <Cart>(HttpContext.Session.GetString("SESSION_CART"));
                foreach (var item in models.Orders)
                {
                    var p = _context.Products.SingleOrDefault(x => x.Id == item.ProductId);
                    if (p != null)
                    {
                        item.Product = p;
                    }
                }
                if (models != null)
                {
                    var cartViewModels = new CartViewModels
                    {
                        Id         = models.Id,
                        ItemsCount = models.Orders.Count,
                        Total      = models.Orders.Sum(x => x.GetTotal()),
                        Status     = null
                    };

                    return(Json(new
                    {
                        success = 1,
                        itemCount = cartViewModels.ItemsCount,
                        total = cartViewModels.TotalCurency()
                    }));
                }
            }


            return(Json(new { success = 0, message = "Error" }));
        }
コード例 #9
0
ファイル: CartController.cs プロジェクト: KidUser/Fashionex
        public ActionResult ProceedPayment(PaymentViewModels payObj)
        {
            if (payObj != null && ModelState.IsValid)
            {
                BinaryFormatter bf        = new BinaryFormatter();
                var             bytPayObj = null as byte[];
                using (MemoryStream ms = new MemoryStream())
                {
                    bf.Serialize(ms, payObj);
                    bytPayObj = ms.ToArray();
                }
                try
                {
                    WebClient client = new WebClient();
                    string    url    = paymetUrlBase;

                    client.UseDefaultCredentials = true;
                    //client.UploadData(paymetUrlBase, bytPayObj);
                    client.DownloadString(url);
                    //get the latest payment-id for the user action
                    var paymentTransactionId = 12345;
                    //confirm the result
                    string result = JsonConvert.DeserializeObject <string>(client.DownloadString(url + paymentTransactionId));

                    if (result != null && result.ToLower().Contains("success"))
                    {
                        return(RedirectToAction("OrderConformation"));//,payObj);
                    }
                    else
                    {
                        payObj.PaymentFailureMessage = "Payment unsuccessful! please try again.";
                        return(View(payObj));
                    }
                }
                catch (Exception e)
                {
                    ViewBag.Message = "Something went wrong!!! Sorry Try again.";
                    return(View("Error"));
                }
            }
            var cartOnHold = (List <ShoppingCart>)(System.Web.HttpContext.Current.Session["userShoppingCart"]);

            if (cartOnHold != null && cartOnHold.Count > 0)
            {
                using (CrossOverShoppingCartDBEntities ce = new CrossOverShoppingCartDBEntities())
                {
                    var cartItemIds      = cartOnHold.Select(c => c.ProductID).ToList();
                    var products         = ce.Products.ToList();
                    var viewCartProducts = products.Where(pr => (pr.IsActive.ToLower().Equals("y")) && cartItemIds.Contains(pr.ProductID)).ToList();

                    List <CartViewModels> carDetModel = new List <CartViewModels>();
                    foreach (var item in cartOnHold)
                    {
                        var product = viewCartProducts.Find(p => p.ProductID == item.ProductID);
                        var cvm     = new CartViewModels();
                        cvm.ProductName = product.ProductName;
                        cvm.Quantity    = item.ProductQuantity;
                        cvm.Price       = product.Price;
                        carDetModel.Add(cvm);
                    }
                    decimal cartTotalPrice = 0;
                    carDetModel.ForEach(i => { cartTotalPrice += i.TotalPrice; });
                    payObj.cartDetailModel = carDetModel;
                    payObj.PaymentAmount   = cartTotalPrice;
                }
            }
            return(View(payObj));
        }
コード例 #10
0
        public IViewComponentResult Invoke()
        {
            if (User.Identity.IsAuthenticated)
            {
                var cart = _context.Carts
                           .Include(x => x.Orders)
                           .ThenInclude(x => x.Product)
                           .Where(x => x.UserId == _userManager.GetUserId(HttpContext.User))
                           .SingleOrDefault(x => string.IsNullOrEmpty(x.Status));

                if (cart != null)
                {
                    var cartViewModels = new CartViewModels
                    {
                        Id         = cart.Id,
                        ItemsCount = cart.Orders.Count,
                        Total      = cart.Orders.Sum(x => x.GetTotal()),
                        Status     = null
                    };

                    return(View(cartViewModels));
                }
                else
                {
                    var cartViewModels = new CartViewModels
                    {
                        Id         = 0,
                        ItemsCount = 0,
                        Total      = 0,
                        Status     = "Cart is empty"
                    };

                    return(View(cartViewModels));
                }
            }
            else
            {
                if (HttpContext.Session.GetString("SESSION_CART") == null || string.IsNullOrEmpty(HttpContext.Session.GetString("SESSION_CART")) == true)
                {
                    var cartViewModels = new CartViewModels
                    {
                        Id         = 0,
                        ItemsCount = 0,
                        Total      = 0,
                        Status     = "Cart is empty"
                    };

                    return(View(cartViewModels));
                }
                else
                {
                    var cart = JsonConvert.DeserializeObject <Cart>(HttpContext.Session.GetString("SESSION_CART"));
                    foreach (var item in cart.Orders)
                    {
                        var p = _context.Products.SingleOrDefault(x => x.Id == item.ProductId);
                        if (p != null)
                        {
                            item.Product = p;
                        }
                    }
                    var cartViewModels = new CartViewModels
                    {
                        Id         = cart.Id,
                        ItemsCount = cart.Orders.Count,
                        Total      = cart.Orders.Sum(x => x.GetTotal()),
                        Status     = null
                    };

                    return(View(cartViewModels));
                }
            }
        }