public ActionResult FirmaBilgi(tbl_BasinFirma basinFirma,
                                       HttpPostedFileBase resimYukle, FormCollection deneme)
        {
            kullaniciId = Convert.ToInt32(Session["kullanici"]);
            var kisiId = veritabani.tbl_Kisiler.
                         Where(x => x.kullaniciId == kullaniciId).
                         Select(x => x.kisiId).FirstOrDefault();

            //Firma varmı diye kontrol et firma id alınır
            var firmaVarmi = veritabani.tbl_BasinFirma.
                             Join(veritabani.tbl_BasinFirmaCalisanlar,
                                  ku => ku.bId,
                                  ki => ki.bId,
                                  (ku, ki) => new { tbl_BasinFirma = ku, tbl_BasinFirmaCalisanlar = ki }).
                             Where(x => x.tbl_BasinFirmaCalisanlar.kisiId == kisiId &&
                                   x.tbl_BasinFirma.bId == x.tbl_BasinFirmaCalisanlar.bId).
                             Select(x => x.tbl_BasinFirma.bId).FirstOrDefault();

            //Resim Kayıt edilir
            var resimYolu = veritabani.tbl_BasinFirma
                            .Where(v => v.bId == basinFirma.bId).
                            Select(v => v.bResimUrl).FirstOrDefault();
            string benzersiz = null;

            if (resimYukle != null)
            {     //güncelleme ekrananında resim yüklenmiş ise
                if (System.IO.File.Exists(Server.MapPath("~/Content/Resimler/FirmaResim/" + resimYolu)) || resimYolu == " ")
                { //sistem klasörüünde resim var ise
                    if (resimYolu != " ")
                    {
                        System.IO.File.Delete(Server.MapPath("~/Content/Resimler/FirmaResim/" + resimYolu));
                    }
                    //dosyayı sil

                    benzersiz = Guid.NewGuid().ToString() + "_" + Path.GetFileName(resimYukle.FileName);
                    string filePath = Path.Combine(Server.MapPath("~/Content/Resimler/FirmaResim"), benzersiz);
                    resimYukle.SaveAs(filePath);
                }
            }
            else
            {
                benzersiz = resimYolu;
            }



            tbl_BasinFirma firma = veritabani.tbl_BasinFirma.
                                   Where(x => x.bId == firmaVarmi).FirstOrDefault();

            if (firma != null)
            {
                //Firma güncelleme kısmı
                firma.bFirmaAdi   = basinFirma.bFirmaAdi;
                firma.bWebSiteUrl = basinFirma.bWebSiteUrl;
                firma.bTelefon    = basinFirma.bTelefon;
                firma.bFax        = basinFirma.bFax;
                firma.bMail       = basinFirma.bMail;
                firma.bResimUrl   = benzersiz;
                firma.SehirId     = basinFirma.SehirId;
                firma.ilceId      = basinFirma.ilceId;
                firma.SemtMahId   = basinFirma.SemtMahId;
                firma.bOnay       = "Beklemede";
            }
            else
            {
                basinFirma.bResimUrl = benzersiz;
                basinFirma.bOnay     = "Beklemede";
                veritabani.tbl_BasinFirma.Add(basinFirma);
            }

            try
            {//entity hata bulma
                // doing here my logic
                veritabani.SaveChanges();
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }
            }
            if (deneme["calisan"] != null)
            {
                //gelen seçili elemana göre veri silme ve ekleme kısmı
                //çalışan için
                string[] cparcala  = deneme["calisan"].Split(',');//kişi idleri çek
                int[]    kisiIdler = new int[cparcala.Count()];
                int      i         = 0;
                foreach (string id in cparcala)
                {
                    kisiIdler[i] = Convert.ToInt32(id);
                    i++;
                }

                var basinCalisan = veritabani.tbl_BasinFirmaCalisanlar.
                                   Where(x => x.bId == firmaVarmi && !kisiIdler.Contains(x.kisiId)).ToList();
                foreach (tbl_BasinFirmaCalisanlar fa in basinCalisan)
                {
                    veritabani.tbl_BasinFirmaCalisanlar.Remove(fa);
                }//seçili olmayan yani silinmek istenen çalışan veritabanından silinir

                var yeniCalisan = veritabani.tbl_BasinFirmaCalisanlar.
                                  Where(x => x.bId == firmaVarmi && kisiIdler.Contains(x.kisiId)).
                                  Select(x => x.kisiId).ToList();

                foreach (int id in kisiIdler)
                {
                    if (!yeniCalisan.Contains(id))
                    {
                        tbl_BasinFirmaCalisanlar calisanekle = new tbl_BasinFirmaCalisanlar();
                        calisanekle.bId    = firmaVarmi;
                        calisanekle.kisiId = id;
                        veritabani.tbl_BasinFirmaCalisanlar.Add(calisanekle);
                    }
                }
            }
            else
            {
                var basinCalisanlar = veritabani.tbl_BasinFirmaCalisanlar.
                                      Where(x => x.bId == firmaVarmi).ToList();
                foreach (tbl_BasinFirmaCalisanlar fa in basinCalisanlar)
                {
                    veritabani.tbl_BasinFirmaCalisanlar.Remove(fa);
                }
            }

            try
            {//entity hata bulma
                // doing here my logic
                veritabani.SaveChanges();
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }
            }

            return(RedirectToAction("FirmaBilgi", "Basin"));
        }
        public ActionResult FirmaBilgi()
        {//firma bilgileri ekleme kısmı
            kullaniciId = Convert.ToInt32(Session["kullanici"]);

            var kisiId = veritabani.tbl_Kisiler.
                         Where(x => x.kullaniciId == kullaniciId).
                         Select(x => x.kisiId).FirstOrDefault();


            if (yonetim.kullaniciKontrol("basin", kullaniciId))
            {
                //Firma varmı diye kontrol et firma id alınır
                var firmaVarmi = veritabani.tbl_BasinFirma.
                                 Join(veritabani.tbl_BasinFirmaCalisanlar,
                                      ku => ku.bId,
                                      ki => ki.bId,
                                      (ku, ki) => new { tbl_BasinFirma = ku, tbl_BasinFirmaCalisanlar = ki }).
                                 Where(x => x.tbl_BasinFirmaCalisanlar.kisiId == kisiId &&
                                       x.tbl_BasinFirma.bId == x.tbl_BasinFirmaCalisanlar.bId).
                                 Select(x => x.tbl_BasinFirma.bId).FirstOrDefault();



                //Bu kullanıcıya ait firmayı çek
                var tbl_BasinFirma = veritabani.tbl_BasinFirma.
                                     Where(x => x.bId == firmaVarmi).FirstOrDefault();
                if (tbl_BasinFirma == null)
                {
                    tbl_BasinFirma             = new tbl_BasinFirma();
                    tbl_BasinFirma.bFirmaAdi   = " ";
                    tbl_BasinFirma.bWebSiteUrl = " ";
                    tbl_BasinFirma.bTelefon    = " ";
                    tbl_BasinFirma.bFax        = " ";
                    tbl_BasinFirma.bMail       = " ";
                    tbl_BasinFirma.bOnay       = kisiId.ToString();
                    tbl_BasinFirma.bResimUrl   = " ";
                    tbl_BasinFirma.SehirId     = 1;
                    tbl_BasinFirma.ilceId      = 1;
                    tbl_BasinFirma.SemtMahId   = 1;

                    veritabani.tbl_BasinFirma.Add(tbl_BasinFirma);
                    veritabani.SaveChanges();

                    var basinId = veritabani.tbl_BasinFirma.
                                  Where(x => x.bOnay == kisiId.ToString()).
                                  Select(x => x.bId).FirstOrDefault();

                    tbl_BasinFirmaCalisanlar calisanlar = new tbl_BasinFirmaCalisanlar();
                    calisanlar.bId    = basinId;
                    calisanlar.kisiId = kisiId;
                    veritabani.tbl_BasinFirmaCalisanlar.Add(calisanlar);
                    veritabani.SaveChanges();
                }


                //Şehileri çek viewbag ile yolla
                var sehirler = veritabani.Sehirler.Select(v => new SelectListItem
                {
                    Selected = v.SehirId == tbl_BasinFirma.SehirId,
                    Text     = v.SehirAdi,
                    Value    = v.SehirId.ToString()
                }).ToList();

                ViewBag.Sehirler = sehirler;

                //ilçerleri çek viewbag ile yolla
                var ilceler = veritabani.Ilceler.
                              Where(x => x.ilceId == tbl_BasinFirma.ilceId).
                              Select(v => new SelectListItem
                {
                    Selected = v.ilceId == tbl_BasinFirma.ilceId,
                    Text     = v.IlceAdi,
                    Value    = v.ilceId.ToString()
                }).ToList();

                ViewBag.Ilceler = ilceler;

                //mahalleleri çek viewbag ile yolla
                var mahalle = veritabani.SemtMah.
                              Where(x => x.SemtMahId == tbl_BasinFirma.SemtMahId).
                              Select(v => new SelectListItem
                {
                    Selected = v.SemtMahId == tbl_BasinFirma.SemtMahId,
                    Text     = v.MahalleAdi,
                    Value    = v.SemtMahId.ToString()
                }).ToList();

                ViewBag.Mahalleler = mahalle;


                //Bu firmada çalısanları çek ve viewbag ile yolla
                var tbl_kisiler = veritabani.tbl_Kisiler.Where(x => x.kullaniciTuru.Equals("basin")).
                                  Select(v => new SelectListItem
                {
                    Selected = false,
                    Text     = v.kisiIsim + "  " + v.kisiSoyisim,
                    Value    = v.kisiId.ToString()
                }).ToList();

                var basinCalisanlar = veritabani.tbl_BasinFirmaCalisanlar.
                                      Where(x => x.bId == firmaVarmi).Select(v => v.kisiId).ToList();

                //basin firmada calisanların selected ının true yap
                foreach (int id in basinCalisanlar)
                {
                    foreach (SelectListItem kisi in tbl_kisiler)
                    {
                        if (id.ToString() == kisi.Value)
                        {
                            kisi.Selected = true;
                            break;
                        }
                    }
                }

                ViewBag.Calisanlar = tbl_kisiler;

                ViewBag.resimUrl = "~/Content/Resimler/FirmaResim/" + tbl_BasinFirma.bResimUrl;

                return(View(tbl_BasinFirma));
            }
            else
            {
                return(RedirectToAction("index", "Home"));
            }
        }