// GET: Proceed public ActionResult Proceed() { #region Wish list HttpCookie cookie = Request.Cookies["WishList"]; if (cookie != null) { List <string> WishList = cookie.Value.Split(',').ToList(); WishList.RemoveAt(WishList.Count - 1); ViewBag.WishList = WishList; ViewBag.WishListCount = WishList.Count; } else { ViewBag.WishListCount = 0; } #endregion #region Cart list HttpCookie cookieCart = Request.Cookies["Cart"]; List <string> CartList = new List <string>(); if (cookieCart != null) { CartList = cookieCart.Value.Split(',').ToList(); CartList.RemoveAt(CartList.Count - 1); ViewBag.CartList = CartList; ViewBag.CartListCount = CartList.Count; } else { ViewBag.CartListCount = 0; } #endregion VmProceed model = new VmProceed(); List <Product> products = new List <Product>(); foreach (var item in CartList) { foreach (var prd in db.Products.Include("ProductImages").ToList()) { if (Convert.ToInt32(item.Split('-')[0]) == prd.Id) { prd.Count = Convert.ToDecimal(item.Split('-')[1]); products.Add(prd); } } } model.Products = products; model.HeaderImage = db.HeaderImages.FirstOrDefault(i => i.Page == "Proceed"); ViewBag.HomeSetting = db.HomeSettings .Include("HomeSocials") .Include("HomeSocials.SocialType").FirstOrDefault(); return(View(model)); }
public ActionResult Proceed(VmProceed proceed) { //Get money - Sent data to API //Call API string APIResponse = "OK"; //Next Steps if (APIResponse == "OK") { //Add Client int?ClientId = null; if (Session["LoginnedUser"] == null) { if (ModelState.IsValid) { User client = new User(); client.Name = proceed.Name; client.Surname = proceed.Surname; client.Email = proceed.Email; client.Phone = proceed.Phone; client.Address = proceed.Address; client.City = proceed.City; client.PostCode = proceed.PostCode; client.Notes = proceed.Notes; client.CreatedDate = DateTime.Now; client.IsRegistered = false; db.Users.Add(client); db.SaveChanges(); ClientId = client.Id; } } else { ClientId = (int)Session["LoginnedUserId"]; } //Sell product foreach (var item in proceed.ProductId) { Product product = db.Products.Find(item); int index = proceed.ProductId.ToList().IndexOf(item); if (product.Quantity < proceed.ProductCount[index]) { Session["PrdIsNotEnough"] = true; goto Get; } Sale sale = new Sale(); sale.ProductId = item; sale.Quantity = proceed.ProductCount[index]; sale.UserId = (int)ClientId; sale.CreatedDate = DateTime.Now; sale.Price = product.Price; db.Sales.Add(sale); product.Quantity -= proceed.ProductCount[index]; db.Entry(product).State = System.Data.Entity.EntityState.Modified; } db.SaveChanges(); Session["Success"] = true; HttpCookie cookieCartMe = new HttpCookie("Cart"); cookieCartMe.Value = ""; cookieCartMe.Expires = DateTime.Now.AddDays(-1); HttpCookie cookieWishMe = new HttpCookie("WishList"); cookieWishMe.Value = ""; cookieWishMe.Expires = DateTime.Now.AddDays(-1); Response.Cookies.Add(cookieCartMe); Response.Cookies.Add(cookieWishMe); return(RedirectToAction("Checkout")); } else { Session["MoneyIsNotEnough"] = true; goto Get; } Get: #region Wish list HttpCookie cookie = Request.Cookies["WishList"]; if (cookie != null) { List <string> WishList = cookie.Value.Split(',').ToList(); WishList.RemoveAt(WishList.Count - 1); ViewBag.WishList = WishList; ViewBag.WishListCount = WishList.Count; } else { ViewBag.WishListCount = 0; } #endregion #region Cart list HttpCookie cookieCart = Request.Cookies["Cart"]; List <string> CartList = new List <string>(); if (cookieCart != null) { CartList = cookieCart.Value.Split(',').ToList(); CartList.RemoveAt(CartList.Count - 1); ViewBag.CartList = CartList; ViewBag.CartListCount = CartList.Count; } else { ViewBag.CartListCount = 0; } #endregion VmProceed model = new VmProceed(); List <Product> products = new List <Product>(); foreach (var item in CartList) { foreach (var prd in db.Products.Include("ProductImages").ToList()) { if (Convert.ToInt32(item.Split('-')[0]) == prd.Id) { prd.Count = Convert.ToDecimal(item.Split('-')[1]); products.Add(prd); } } } model.Products = products; model.HeaderImage = db.HeaderImages.FirstOrDefault(i => i.Page == "Checkout"); ViewBag.HomeSetting = db.HomeSettings .Include("HomeSocials") .Include("HomeSocials.SocialType").FirstOrDefault(); return(View(model)); }