// // 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)); } }
// 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)); }
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)); }
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); }
// // 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)); }
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)); }
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()); }
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" })); }
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)); }
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)); } } }