public ActionResult Odeme(OdemeViewModel odemeVm) { if (odemeVm.OdemeTutari != Sepet.Sum(x => x.Adet * x.BirimFiyat)) { ModelState.AddModelError("OdemeTutari", "Sepetinizde değişiklik yaptığınız için ödeme tutar değişmiş"); } if (ModelState.IsValid) { bool odemeSonuc = OdemeyiAl(odemeVm.OdemeTutari, odemeVm.KartNo, odemeVm.SonKullanmaTarihi, odemeVm.Cvv); if (!odemeSonuc) { ModelState.AddModelError("OdemeTutari", "Kredi kartınızdan ödeme yapılamadı.Lütfen bilgilerinizi kontrol ediniz"); } if (odemeSonuc) { Siparis siparis = new Siparis { MusteriId = User.Identity.GetUserId(), MusteriAd = odemeVm.MusteriAd, MusteriSoyad = odemeVm.MusteriSoyad, MusteriEmail = odemeVm.MusteriEmail, SehirId = odemeVm.SehirId, MusteriAdres = odemeVm.MusteriAdres, MusteriAdres2 = odemeVm.MusteriAdres2, MusteriPostaKodu = odemeVm.MusteriPostaKodu, OdemeTutari = odemeVm.OdemeTutari, SiparisZamani = DateTime.Now, SiparisDetaylar = new List <SiparisDetay>() }; foreach (var item in Sepet) { siparis.SiparisDetaylar.Add(new SiparisDetay { UrunId = item.UrunId, UrunAd = item.UrunAd, BirimFiyat = item.BirimFiyat, Adet = item.Adet, }); } db.Siparisler.Add(siparis); db.SaveChanges(); Sepet.Clear(); TempData["SiparisId"] = siparis.Id; return(RedirectToAction("OdemeAlindi", "Sepet")); } } ViewBag.SehirId = new SelectList(db.Sehirler.ToList(), "Id", "SehirAd"); return(View()); }
public ActionResult Odeme(OdemeViewModel odemeVM) { // formdan gelen ödeme tutarı ile sepetteki ödeme tutarı aynı değilse if (odemeVM.OdemeTutari != Sepet.Sum(x => x.Adet * x.BirimFiyat)) { ModelState.AddModelError("OdemeTutari", "Sepetinizde değişiklik yaptığınız için ödeme tutarı değişmiştir. Tekrar deneyiniz."); } if (ModelState.IsValid) { // ödemeyi al bool odemeSonuc = OdemeyiAl(odemeVM.OdemeTutari, odemeVM.KKNo, odemeVM.KKSonKullanmaTarihi, odemeVM.KKCvv); // ödeme başarısızsa if (!odemeSonuc) { ModelState.AddModelError("OdemeTutari", "Kredi kartınızdan ödeme alınamadı. Lütfen kart bilgilerinizi kontrol ediniz."); } // ödeme başarılıysa if (odemeSonuc) { // sipariş ve sipariş detaylarını veritabanına kaydet Siparis siparis = new Siparis { MusteriId = User.Identity.GetUserId(), SehirId = odemeVM.SehirId, Ad = odemeVM.Ad, Soyad = odemeVM.Soyad, Email = odemeVM.Email, Adres = odemeVM.Adres, Adres2 = odemeVM.Adres2, PostaKodu = odemeVM.PostaKodu, OdemeTutari = odemeVM.OdemeTutari, SiparisZamani = DateTime.Now, SiparisDetaylar = new List <SiparisDetay>() }; foreach (var item in Sepet) { siparis.SiparisDetaylar.Add(new SiparisDetay { UrunId = item.UrunId, UrunAd = item.UrunAd, BirimFiyat = item.BirimFiyat, Adet = item.Adet }); } db.Siparisler.Add(siparis); db.SaveChanges(); Sepet.Clear(); TempData["SiparisId"] = siparis.Id; return(RedirectToAction("OdemeAlindi", "Sepet")); } } ViewBag.SehirId = new SelectList(db.Sehirler.ToList(), "Id", "SehirAd"); return(View()); }