public void SepetSil(int id)
        {
            tblSepet sepetim = db.tblSepet.FirstOrDefault(x => x.SepetId == id);

            db.tblSepet.Remove(sepetim);
            db.SaveChanges();
        }
        public bool SepetKontrol(tblSepet sepet)
        {
            tblSepet sepet2 = db.tblSepet.FirstOrDefault(x => x.ZiyaretciId == sepet.ZiyaretciId);

            if (sepet2 != null)
            {
                sepetinId = sepet2.SepetId;
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public ActionResult AddUser(AddUserViewModel Kullanici)
        {
            if (!ModelState.IsValid)
            {
                return(View(Kullanici));
            }
            string       sifre2           = Sifrele(Kullanici.Password);
            tblKullanici Eklenenkullanici = new tblKullanici
            {
                Ad    = Kullanici.Ad,
                Soyad = Kullanici.Soyad,
                Mail  = Kullanici.Email,
                Sifre = sifre2,
            };

            db.tblKullanici.Add(Eklenenkullanici);
            db.SaveChanges();
            FormsAuthentication.SetAuthCookie($"{Kullanici.Ad} {Kullanici.Soyad} {Kullanici.Email} {Eklenenkullanici.KullaniciID}", true);

            string       macadres   = UrunController.MACAdresiAl();
            tblZiyaretci ziyaretci2 = db.tblZiyaretci.FirstOrDefault(x => x.ZiyaretciMAC == macadres);

            if (ziyaretci2 != null)
            {
                int ZiyaretcininId = ziyaretci2.ZiyaretciID;

                HomeViewModel model = new HomeViewModel();
                model.sepet = db.tblSepet.Where(x => x.ZiyaretciId == ZiyaretcininId).ToList();
                if (model.sepet != null)
                {
                    foreach (var item in model.sepet)
                    {
                        tblSepet guncelsepet = db.tblSepet.Find(item.SepetId);
                        guncelsepet.KullaniciId = Eklenenkullanici.KullaniciID;
                        guncelsepet.ZiyaretciId = null;
                        db.SaveChanges();
                    }
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
        public void SepetGüncelle(int id, int islem)
        {
            tblSepet sepetim = db.tblSepet.FirstOrDefault(x => x.SepetId == id);

            if (islem == 0)
            {
                sepetim.SepettekiAdet++;
                //var guncellenecekSepet = db.tblSepet.Find(sepetId);
                //guncellenecekSepet.SepettekiAdet = sepetAdet + 1;
                db.SaveChanges();
            }
            else if (islem == 1)
            {
                if (sepetim.SepettekiAdet == 1)
                {
                    SepetSil(id);
                }
                else
                {
                    sepetim.SepettekiAdet--;
                    db.SaveChanges();
                }
            }
        }
        public ActionResult Login(LoginViewModel kullanici)
        {
            if (!ModelState.IsValid)
            {
                return(View(kullanici));
            }

            string sifre = Sifrele(kullanici.Password);

            var kullaniciDB = db.tblKullanici.FirstOrDefault(x => x.Mail == kullanici.Email && x.Sifre == sifre);

            if (kullaniciDB != null)
            {
                FormsAuthentication.SetAuthCookie($"{kullaniciDB.Ad} {kullaniciDB.Soyad} {kullaniciDB.Mail} {kullaniciDB.KullaniciID}", true);
                var kullaniciadi = User.Identity.Name.Split(' ');

                string       macadres   = UrunController.MACAdresiAl();
                tblZiyaretci ziyaretci2 = db.tblZiyaretci.FirstOrDefault(x => x.ZiyaretciMAC == macadres);

                if (ziyaretci2 != null)
                {
                    int ZiyaretcininId = ziyaretci2.ZiyaretciID;

                    HomeViewModel model = new HomeViewModel();
                    model.sepet = db.tblSepet.Where(x => x.ZiyaretciId == ZiyaretcininId).ToList();
                    IList <tblSepet> sepet2 = db.tblSepet.Where(x => x.KullaniciId == kullaniciDB.KullaniciID).ToList();
                    bool             onay   = true;
                    if (model.sepet != null)
                    {
                        foreach (var item2 in sepet2)
                        {
                            onay = true;
                            tblSepet guncelsepet = db.tblSepet.Find(item2.SepetId);
                            foreach (var item in model.sepet)
                            {
                                tblSepet temp = db.tblSepet.FirstOrDefault(x => x.UrunId == item.UrunId && x.KullaniciId == item2.KullaniciId);
                                if (temp == null)
                                {
                                    guncelsepet.KullaniciId   = kullaniciDB.KullaniciID;
                                    guncelsepet.ZiyaretciId   = null;
                                    guncelsepet.SepettekiAdet = item.SepettekiAdet;
                                    guncelsepet.UrunId        = item.UrunId;
                                    db.tblSepet.Add(guncelsepet);
                                    db.SaveChanges();
                                }
                                else if (item2.UrunId == item.UrunId)
                                {
                                    guncelsepet.SepettekiAdet = item2.SepettekiAdet + item.SepettekiAdet;
                                    db.SaveChanges();
                                    onay = false;
                                }
                            }
                        }
                        if (sepet2.Count == 0)
                        {
                            foreach (var item in model.sepet)
                            {
                                tblSepet yeniSepet = db.tblSepet.Find(item.SepetId);
                                yeniSepet.KullaniciId = kullaniciDB.KullaniciID;
                                yeniSepet.ZiyaretciId = null;
                                db.SaveChanges();
                            }
                        }
                        foreach (var item in model.sepet)
                        {
                            tblSepet silinecekSepet = db.tblSepet.Find(item.SepetId);
                            if (silinecekSepet.KullaniciId == null)
                            {
                                db.tblSepet.Remove(silinecekSepet);
                                db.SaveChanges();
                            }
                        }
                    }
                }
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                var adminDB = db.tblAdmin.FirstOrDefault(x => x.Mail == kullanici.Email && x.Sifre == sifre);

                if (adminDB != null)
                {
                    FormsAuthentication.SetAuthCookie($"{adminDB.Ad} {adminDB.Soyad}", true);
                    return(RedirectToAction("Anasayfa", "Admin"));
                }
                else
                {
                    ModelState.AddModelError("", "EMail veya şifre hatalı!");
                    return(View());
                }
            }
        }
        public void SepeteEkle(int id)
        {
            tblSepet sepet = new tblSepet();


            if (User.Identity.IsAuthenticated)
            {
                var      kullaniciadi   = User.Identity.Name.Split(' ');
                int      kullaniciId    = Convert.ToInt32(kullaniciadi[3]);
                tblSepet sepetKullanici = db.tblSepet.FirstOrDefault(x => x.KullaniciId == kullaniciId && x.UrunId == id);
                if (sepetKullanici != null)
                {
                    var GuncellenecekSepet = db.tblSepet.Find(sepetKullanici.SepetId);

                    GuncellenecekSepet.SepettekiAdet += 1;
                    db.SaveChanges();
                }
                else
                {
                    sepet.KullaniciId   = kullaniciId;
                    sepet.UrunId        = id;
                    sepet.SepettekiAdet = 1;
                    db.tblSepet.Add(sepet);
                    db.SaveChanges();
                }
            }
            else
            {
                string       macadres   = MACAdresiAl();
                tblZiyaretci ziyaretci2 = db.tblZiyaretci.FirstOrDefault(x => x.ZiyaretciMAC == macadres);

                if (ziyaretci2 != null)
                {
                    int ZiyaretcininId = ziyaretci2.ZiyaretciID;
                    sepet.ZiyaretciId = ZiyaretcininId;
                    sepet.UrunId      = id;
                    if (SepetKontrol(sepet))
                    {
                        var guncellenecekSepet = db.tblSepet.Find(sepetId);
                        guncellenecekSepet.SepettekiAdet = sepetAdet + 1;
                        db.SaveChanges();
                    }
                    else
                    {
                        sepet.SepettekiAdet = 1;
                        db.tblSepet.Add(sepet);
                        db.SaveChanges();
                    }
                }
                else
                {
                    tblZiyaretci ziyaretci = new tblZiyaretci();
                    ziyaretci.ZiyaretciMAC = macadres;
                    db.tblZiyaretci.Add(ziyaretci);
                    db.SaveChanges();
                    tblZiyaretci ziyaretci3 = db.tblZiyaretci.FirstOrDefault(x => x.ZiyaretciMAC == macadres);

                    sepet.ZiyaretciId   = ziyaretci3.ZiyaretciID;
                    sepet.UrunId        = id;
                    sepet.SepettekiAdet = 1;
                    db.tblSepet.Add(sepet);
                    db.SaveChanges();
                }
            }
        }
        public JsonResult SatinAl(int id, string adres, string fiyat)
        {
            int sayac = 0;

            if (User.Identity.IsAuthenticated)
            {
                bool          onay  = true;
                HomeViewModel model = new HomeViewModel();
                model.sepet = db.tblSepet.Where(x => x.KullaniciId == id).ToList();
                foreach (var item in model.sepet)
                {
                    if (item.SepettekiAdet > item.tblKitap.Adet)
                    {
                        onay = false;
                        break;
                    }
                }
                if (onay == true)
                {
                    string[] dizi = fiyat.Split(' ');
                    if (dizi != null)
                    {
                        foreach (var item in model.sepet)
                        {
                            if (item.SepettekiAdet < item.tblKitap.Adet)
                            {
                                tblSatinAlinanlar satilan = new tblSatinAlinanlar();
                                satilan.UrunID          = item.UrunId;
                                satilan.MusteriID       = Convert.ToInt32(item.KullaniciId);
                                satilan.SatinAlmaAdedi  = item.SepettekiAdet;
                                satilan.SatinAlmaTarihi = DateTime.Now;
                                satilan.Adres           = adres;
                                satilan.UrunBirimFiyati = Convert.ToDecimal(dizi[sayac]);
                                satilan.ToplamFiyat     = Convert.ToDecimal(dizi[sayac]) * item.SepettekiAdet;
                                db.tblSatinAlinanlar.Add(satilan);
                                db.SaveChanges();
                                tblKitap guncellenecekKitap = db.tblKitap.Find(item.UrunId);
                                guncellenecekKitap.Adet -= item.SepettekiAdet;
                                db.SaveChanges();
                                tblSepet silinecekSepet = db.tblSepet.Find(item.SepetId);
                                db.tblSepet.Remove(silinecekSepet);
                                db.SaveChanges();
                            }
                            else if (item.SepettekiAdet == item.tblKitap.Adet)
                            {
                                tblSatinAlinanlar satilan = new tblSatinAlinanlar();
                                satilan.UrunID          = item.UrunId;
                                satilan.MusteriID       = Convert.ToInt32(item.KullaniciId);
                                satilan.SatinAlmaAdedi  = item.SepettekiAdet;
                                satilan.UrunBirimFiyati = Convert.ToDecimal(dizi[sayac]);
                                satilan.ToplamFiyat     = Convert.ToDecimal(dizi[sayac]) * item.SepettekiAdet;
                                db.tblSatinAlinanlar.Add(satilan);
                                db.SaveChanges();
                                tblKitap guncellenecekKitap = db.tblKitap.Find(item.UrunId);
                                guncellenecekKitap.Adet      -= item.SepettekiAdet;
                                guncellenecekKitap.StokDurumu = false;
                                db.SaveChanges();
                                tblSepet silinecekSepet = db.tblSepet.Find(item.SepetId);
                                db.tblSepet.Remove(silinecekSepet);
                                db.SaveChanges();
                            }
                            sayac++;
                        }
                    }
                }
                else
                {
                    return(Json("stokyok", JsonRequestBehavior.AllowGet));
                }
                AdresiGuncelle(id, adres);
                return(Json("işlem tamam", JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json("hatalı", JsonRequestBehavior.AllowGet));
            }
        }