public ActionResult Buy(string Address) { if (IsLogon()) { try { var basket = (List <Models.i.BasketModels>)Session["Basket"]; var guid = new Guid(Address); var _address = context.Addresses.FirstOrDefault(x => x.Id == guid); //Sipariş Verildi = SV //Ödeme Bildirimi = OB //Ödeme Onaylandı = OO var order = new DB.Orders() { AddedDate = DateTime.Now, Address = _address.AdresDescription, Member_Id = CurrentUserId(), Status = "SV", Id = Guid.NewGuid() }; //5 //ahmet 5 //mehmet 5 foreach (Models.i.BasketModels item in basket) { var oDetail = new DB.OrderDetails(); oDetail.AddedDate = DateTime.Now; oDetail.Price = item.Product.Price * item.Count; oDetail.Product_Id = item.Product.Id; oDetail.Quantity = item.Count; oDetail.Id = Guid.NewGuid(); order.OrderDetails.Add(oDetail); var _product = context.Products.FirstOrDefault(x => x.Id == item.Product.Id); if (_product != null && _product.UnitsInStock >= item.Count) { _product.UnitsInStock = _product.UnitsInStock - item.Count; } else { throw new Exception(string.Format("{0} ürünü için yeterli stok yoktur veya silinmiş bir ürünü almaya çalışıyorsunuz.", item.Product.Name)); } } context.Orders.Add(order); context.SaveChanges(); Session["Basket"] = null; } catch (Exception ex) { TempData["MyError"] = ex.Message; } return(RedirectToAction("Buy", "i")); } else { return(RedirectToAction("Login", "Account")); } }
public ActionResult Buy(string Address) { if (IsLogon()) { try { var basket = (List <Models.i.BasketModels>)Session["Basket"]; int id = int.Parse(Address); var _address = context.Addresses.FirstOrDefault(X => X.Id == id); //Sipariş Verildi. SV //Ödeme Bildirimi. ÖB //Ödeme Onaylandı. OO var order = new DB.Orders() { AddedDate = DateTime.Now, Address = _address.Description, Member_Id = CurrentUserId(), Status = "SV" }; foreach (Models.i.BasketModels item in basket) { var oDetail = new DB.OrderDetails(); oDetail.AddedDate = DateTime.Now; oDetail.Price = item.Product.Price * item.Count; oDetail.Product_Id = item.Product.Id; oDetail.Quantity = item.Count; order.OrderDetails.Add(oDetail); var _product = context.Products.FirstOrDefault(x => x.Id == item.Product.Id); if (_product != null && _product.UnitsInStock >= item.Count) { _product.UnitsInStock = _product.UnitsInStock - item.Count; } else { throw new Exception(string.Format("{0} Ürünü İçin Yeterli Stok Yoktur.", item.Product.Name)); } } context.Orders.Add(order); context.SaveChanges(); Session["Basket"] = null; } catch (Exception ex) { TempData["MyError"] = ex.Message; } return(RedirectToAction("Buy", "i")); } else { return(RedirectToAction("Login", "Account")); } }
public async Task <ActionResult> Buy(string Address) { var currentuser = (UsKirtasiye.DB.Members)Session["LogonUser"]; if (Session["LogonUser"] == null) { return(RedirectToAction("Index", "Index")); } else if (Address == null) { TempData["MyError"] = "Lutfen profilinizden adres bilgilerinizi giriniz"; } else { try { var basket = (List <Models.Product_Detail.ProductBasketModels>)Session["Basket"]; var adresçevirme = Int64.Parse(Address); var adress = context.Addresses.FirstOrDefault(x => x.Id == adresçevirme); // Ödeme bildilrimi yapıldı // Spariş verildi // Ödeme Onaylandı var order = new DB.Orders() { AddedDate = DateTime.Now, Address = adress.AdresDescription, Member_Id = currentuser.Id, Id = Guid.NewGuid(), Status = "SV", }; foreach (Models.Product_Detail.ProductBasketModels item in basket) { var orderdetail = new DB.OrderDetails(); orderdetail.AddedDate = DateTime.Now; orderdetail.Price = item.Products.Price * item.Count; orderdetail.Product_Id = item.Products.Id; orderdetail.Quantity = item.Count; orderdetail.Id = Guid.NewGuid(); order.OrderDetails.Add(orderdetail); var product = context.Products.FirstOrDefault(x => x.Id == item.Products.Id); if (product != null && product.UnitsInStock >= item.Count) { product.UnitsInStock = product.UnitsInStock - item.Count; } else { throw new Exception(string.Format("{0} ürünü için yeterli stok yoktur veya silinmiş bir ürünü almaya çalışıyorsunuz", item.Products.Name)); } } context.Orders.Add(order); context.SaveChanges(); await SendMail(currentuser, basket, order); } catch (Exception ex) { ViewBag.MyError = ex.Message; throw; } } return(RedirectToAction("Buy", "Buy")); }
[HttpPost] /*Basket.cshtml den satın al butonuyla dropdownlistteki adres id mizi aldık.Sepet bilgileride Sessiondan çekicez.*/ public ActionResult BuyPro(string Address, string OrderDescription) { if (CurrentUser() == null) { return(RedirectToAction("Login", "Account")); } else { try { var basket = (List <Models.i.BasketModelssip>)Session["Basket"]; var guid = new Guid(Address); var orderdesc = OrderDescription; var myaddress = context.Addresses.FirstOrDefault(x => x.Id == guid); var order = new DB.Orders() { AddedDate = DateTime.Now, Address = myaddress.AdresDescription, Member_Id = CurrentUserId(), //status:Siparis verildi=SV-Ödeme bildirimi=OB-Ödeme onaylandı=OO Status = "SV", Description = orderdesc, Id = Guid.NewGuid() //Guid Id yi atadım. }; foreach (Models.i.BasketModelssip item in basket) { var orderdetail = new DB.OrderDetails() { AddedDate = DateTime.Now, // Order_Id = order.Id, Product_Id = item.Product.Id, Price = item.Product.Price * item.Count, Quantity = item.Count, Id = Guid.NewGuid() }; order.OrderDetails.Add(orderdetail); //Direk içerisine eklendiğinden OrderId si otomatikmen Ordere bağlanıcak var updateproduct = context.Products.FirstOrDefault(x => x.Id == item.Product.Id); if (updateproduct.UnitsInStock >= item.Count && updateproduct.UnitsInStock >= 0 && updateproduct != null && updateproduct.IsContinued == true) //Ürün kontrolü { updateproduct.UnitsInStock = updateproduct.UnitsInStock - item.Count; //Satıştan sonra ürünümüzün stoğunu güncelledim. } else //Ürün kontrolünde aksilik çıkarsa ürün stok bitmesi satıştan kaldırılma vb. { throw new Exception(string.Format("{0} ürününde yeterli stok kalmamıştır yada satıştan kaldırılmıştır.Siparişiniz iptal ediliyor anlayışınız için teşekkürler.", item.Product.Name)); } } context.Orders.Add(order); //Orderi ekledik ki order details de etkilensin context.SaveChanges(); } catch (Exception e) { ViewBag.Error = e.Message; } int memberid = CurrentUserId(); var userorders = context.Orders.Where(x => x.Member_Id == memberid).ToList().OrderByDescending(x => x.AddedDate); return(View(userorders)); } }