public static List <School> GetSinavOturumOkullari(int SinavOturumId)
        {
            using (SGContext db = new SGContext())
            {
                try
                {
                    var sinavokullar = db.SinavOturum.Include("Okullar").FirstOrDefault(d => d.SinavOturumId == SinavOturumId);
                    var okulListesi  = new List <School>();

                    okulListesi.AddRange(sinavokullar.Okullar);
                    foreach (var item in okulListesi)
                    {
                        var oturumokulu = SinavManager.GetSinavOturumOkulu(item.SchoolId, SinavOturumId);
                        if (oturumokulu == null)
                        {
                            item.SalonSayisi = 0;
                        }
                        else
                        {
                            item.SalonSayisi = oturumokulu.SalonSayisi;
                        }
                    }

                    return(okulListesi.OrderBy(d => d.MebKodu).ToList());
                }
                catch (Exception)
                {
                    return(null);
                }
            }
        }
        public static bool GorevdenCikar(int tchID, int snOturumID)
        {
            using (SGContext db = new SGContext())
            {
                try
                {
                    var gorevli = db.SinavGorevli.FirstOrDefault(d => d.TeacherId == tchID && d.SinavOturumId == snOturumID);

                    if (gorevli != null)
                    {
                        var setting = SettingManager.GetSettings();

                        if (setting.GenelBasvuru)
                        {
                            var gorevliler = SinavManager.GetSinavGorevliler(snOturumID, (int)SG_DAL.Enums.EnumSinavGorev.Gozetmen);

                            var ogrt = TeacherManager.GetTeacherListForGenelBasvuru();

                            if (gorevliler.Count() > 0)
                            {
                                foreach (var item in ogrt)
                                {
                                    var yenigorevli = SinavManager.GetSinavGorevli(snOturumID, item.TeacherId);

                                    if (yenigorevli == null)
                                    {
                                        gorevli.TeacherId = item.TeacherId;
                                        db.SaveChanges();
                                        break;
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        return(false);
                    }

                    /*if (gorevli != null)
                     * {
                     *  var okulgorevlileri = db.SinavGorevli.Where(d => d.SchoolId == gorevli.SchoolId && d.SinavOturumId == snOturumID);
                     *  foreach (var item in okulgorevlileri)
                     *  {
                     *      item.si
                     *  }
                     * }*/

                    return(true);
                }
                catch (Exception)
                {
                    return(true);
                }
            }
        }
        public static bool KomisyonGorevlisiEkle(int snvOturmId, int okulId, int komisyonBaskani, int komisyonUyesi, int komisyonUyesi2)
        {
            using (SGContext db = new SGContext())
            {
                try
                {
                    var komisyonGorevlileri = SinavManager.GetSinavOkulKomisyonGorevliler(snvOturmId, okulId);
                    var komisyonRepo        = new Repository <SinavGorevli>(db);

                    foreach (var item in komisyonGorevlileri)
                    {
                        komisyonRepo.Delete(item);
                    }

                    var gorevli = new SinavGorevli();
                    gorevli.SinavOturumId = snvOturmId;
                    gorevli.TeacherId     = komisyonBaskani;
                    gorevli.SchoolId      = okulId;
                    gorevli.SiraNo        = 1;
                    gorevli.SinavGorevId  = (int)SG_DAL.Enums.EnumSinavGorev.BinaSinavKomisyonuBaskani;
                    komisyonRepo.Add(gorevli);

                    gorevli = new SinavGorevli();
                    gorevli.SinavOturumId = snvOturmId;
                    gorevli.TeacherId     = komisyonUyesi;
                    gorevli.SiraNo        = 2;
                    gorevli.SchoolId      = okulId;
                    gorevli.SinavGorevId  = (int)SG_DAL.Enums.EnumSinavGorev.BinaSinavKomisyonuUyesi;
                    komisyonRepo.Add(gorevli);

                    gorevli = new SinavGorevli();
                    gorevli.SinavOturumId = snvOturmId;
                    gorevli.TeacherId     = komisyonUyesi2;
                    gorevli.SiraNo        = 3;
                    gorevli.SchoolId      = okulId;
                    gorevli.SinavGorevId  = (int)SG_DAL.Enums.EnumSinavGorev.BinaSinavKomisyonuUyesi;
                    komisyonRepo.Add(gorevli);

                    return(true);
                }
                catch (Exception)
                {
                    return(false);
                }
            }
        }
        public static Result SinavGorevlendir(string snvOturmId, string[] ogretmenler, string[] txtSalonSayi, string[] hdnPersonelSayi)
        {
            using (SGContext db = new SGContext())
            {
                try
                {
                    //var gorevliRepo = new Repository<SinavGorevli>(db);

                    var okullar       = SchoolManager.GetSinavOturumOkullari(Convert.ToInt32(snvOturmId));
                    var ogtRepo       = new Repository <Teacher>(db);
                    var grvRepo       = new Repository <SinavGorevli>(db);
                    var snvOtrOklRepo = new Repository <SinavOturumOkullari>(db);

                    int genelSira = 1;
                    int okulIndex = 1;


                    foreach (var item in okullar)
                    {
                        var komisyon = SinavManager.GetSinavGorevliler(Convert.ToInt32(snvOturmId), (int)SG_DAL.Enums.EnumSinavGorev.BinaSinavKomisyonuBaskani, item.SchoolId);

                        if (komisyon.Count == 0)
                        {
                            var idareciler = TeacherManager.GetOkulIdarecileri(item.SchoolId);
                            // bu kısımda idarecilerden ilk olanlarını bina komisyon görevlisi olarak otomatik olarak ata
                            var mdr = idareciler.FirstOrDefault(d => d.Unvan == (int)SG_DAL.Enums.EnumUnvan.Mudur);
                            if (mdr != null)
                            {
                                var gorevli = new SinavGorevli();
                                gorevli.SinavOturumId = Convert.ToInt32(snvOturmId);
                                gorevli.SiraNo        = 1;
                                gorevli.TeacherId     = Convert.ToInt32(mdr.TeacherId);
                                gorevli.SchoolId      = item.SchoolId;
                                gorevli.SinavGorevId  = (int)SG_DAL.Enums.EnumSinavGorev.BinaSinavKomisyonuBaskani;
                                db.SinavGorevli.Add(gorevli);
                                db.SaveChanges();
                            }
                            else
                            {
                                continue;
                            }

                            var mdryrd = idareciler.FirstOrDefault(d => d.Unvan == (int)SG_DAL.Enums.EnumUnvan.MudurYardimcisi);
                            if (mdryrd != null)
                            {
                                var gorevli = new SinavGorevli();
                                gorevli.SinavOturumId = Convert.ToInt32(snvOturmId);
                                gorevli.SiraNo        = 1;
                                gorevli.TeacherId     = Convert.ToInt32(mdryrd.TeacherId);
                                gorevli.SchoolId      = item.SchoolId;
                                gorevli.SinavGorevId  = (int)SG_DAL.Enums.EnumSinavGorev.BinaSinavKomisyonuUyesi;
                                db.SinavGorevli.Add(gorevli);
                                db.SaveChanges();
                            }
                            else
                            {
                                var gorevli = new SinavGorevli();
                                gorevli.SinavOturumId = Convert.ToInt32(snvOturmId);
                                gorevli.SiraNo        = 1;
                                gorevli.TeacherId     = Convert.ToInt32(mdr.TeacherId);
                                gorevli.SchoolId      = item.SchoolId;
                                gorevli.SinavGorevId  = (int)SG_DAL.Enums.EnumSinavGorev.BinaSinavKomisyonuUyesi;
                                db.SinavGorevli.Add(gorevli);
                                db.SaveChanges();
                            }

                            mdryrd = idareciler.LastOrDefault(d => d.Unvan == (int)SG_DAL.Enums.EnumUnvan.MudurYardimcisi);
                            if (mdryrd != null)
                            {
                                var gorevli = new SinavGorevli();
                                gorevli.SinavOturumId = Convert.ToInt32(snvOturmId);
                                gorevli.SiraNo        = 1;
                                gorevli.TeacherId     = Convert.ToInt32(mdryrd.TeacherId);
                                gorevli.SchoolId      = item.SchoolId;
                                gorevli.SinavGorevId  = (int)SG_DAL.Enums.EnumSinavGorev.BinaSinavKomisyonuUyesi;
                                db.SinavGorevli.Add(gorevli);
                                db.SaveChanges();
                            }
                            else
                            {
                                var gorevli = new SinavGorevli();
                                gorevli.SinavOturumId = Convert.ToInt32(snvOturmId);
                                gorevli.SiraNo        = 1;
                                gorevli.TeacherId     = Convert.ToInt32(mdr.TeacherId);
                                gorevli.SchoolId      = item.SchoolId;
                                gorevli.SinavGorevId  = (int)SG_DAL.Enums.EnumSinavGorev.BinaSinavKomisyonuUyesi;
                                db.SinavGorevli.Add(gorevli);
                                db.SaveChanges();
                            }
                        }
                    }

                    var gorevliler = SinavManager.GetSinavGorevliler(Convert.ToInt32(snvOturmId), (int)SG_DAL.Enums.EnumSinavGorev.Gozetmen);

                    foreach (var item in gorevliler)
                    {
                        grvRepo.Delete(item);
                    }

                    var oturumlar = SinavManager.GetSinavOturumOkullari(Convert.ToInt32(snvOturmId));

                    foreach (var item in oturumlar)
                    {
                        snvOtrOklRepo.Delete(item);
                    }
                    int okulogretmensira = 1;
                    foreach (var okul in okullar)
                    {
                        for (int i = 0; i < Convert.ToInt32(hdnPersonelSayi[okulIndex - 1]); i++)
                        {
                            int ogtID         = Convert.ToInt32(ogretmenler[genelSira - 1]);
                            int sinavOturumID = Convert.ToInt32(snvOturmId);

                            var gorevli = new SinavGorevli();
                            gorevli.SinavOturumId = Convert.ToInt32(snvOturmId);
                            gorevli.SiraNo        = genelSira;
                            gorevli.OkulSiraNo    = okulogretmensira;
                            gorevli.TeacherId     = Convert.ToInt32(ogretmenler[genelSira - 1]);
                            gorevli.SchoolId      = okul.SchoolId;
                            gorevli.SinavGorevId  = (int)SG_DAL.Enums.EnumSinavGorev.Gozetmen;
                            db.SinavGorevli.Add(gorevli);

                            db.SaveChanges();
                            genelSira++;
                            okulogretmensira++;
                        }
                        okulogretmensira = 1;
                        SinavOturumOkullari oturumokul = new SinavOturumOkullari();
                        oturumokul.SchoolId           = okul.SchoolId;
                        oturumokul.SinavOturumId      = Convert.ToInt32(snvOturmId);
                        oturumokul.AsilGozetmenSayisi = Convert.ToInt32(hdnPersonelSayi[okulIndex - 1]);
                        oturumokul.SalonSayisi        = Convert.ToInt32(txtSalonSayi[okulIndex - 1]);
                        db.SinavOturumOkullari.Add(oturumokul);
                        db.SaveChanges();

                        okulIndex++;
                    }


                    result = new Result(SystemRess.Messages.basarili_kayit.ToString(), SystemRess.Messages.basarili_durum.ToString());
                    return(result);
                }
                catch
                {
                    result = new Result(SystemRess.Messages.hatali_kayit.ToString(), SystemRess.Messages.hatali_durum.ToString());
                    return(result);
                }
            }
        }
        public static Result SinavOlustur(Sinav sinav, NameValueCollection collection)
        {
            using (SGContext db = new SGContext())
            {
                try
                {
                    SinavOturum otur = new SinavOturum();
                    School      sch  = new School();
                    otur.Okullar = new List <School>();

                    sinav.SinavOturum = new List <SinavOturum>();
                    int oturumNo = 1;
                    //sinav.SinavDurum = db.SinavDurum.FirstOrDefault(d => d.KisaDurum == "Onaylanmadı");

                    foreach (var item in collection.AllKeys)
                    {
                        if (item.Contains("sinavoturum_Tarih"))
                        {
                            otur       = new SinavOturum();
                            otur.Tarih = Convert.ToDateTime(collection.GetValues(item)[0]);
                        }
                        else if (item.Contains("sinavoturum_Saat"))
                        {
                            otur.Saat               = collection.GetValues(item)[0];
                            otur.OturumNo           = oturumNo++;
                            otur.SinavOturumDurumId = (int)SG_DAL.Enums.EnumSinavDurum.OnaylanmamisSinav;
                            sinav.SinavOturum.Add(otur);
                        }
                        else if (item.Contains("duallistbox_okullar"))
                        {
                            foreach (var okulid in collection.GetValues(item))
                            {
                                var okulRepo = new Repository <School>(db);
                                int id       = Convert.ToInt32(okulid);
                                var okul     = okulRepo.First(d => d.SchoolId == id);
                                //////////////////////

                                //////////////////////
                                List <SinavOturumOkullari> oturumokullist = new List <SinavOturumOkullari>();
                                foreach (var sinavoturumlari in sinav.SinavOturum)
                                {
                                    sinavoturumlari.Okullar.Add(okul);
                                }
                            }
                        }
                    }

                    var sinavRepo = new Repository <Sinav>(db);
                    sinavRepo.Add(sinav);

                    var sinavOturumlari = SinavManager.GetSinavOturumlari(sinav.SinavId);


                    foreach (var oturum in sinavOturumlari)
                    {
                        var sinavoturumokulu = new SinavOturumOkullari();

                        var sinavOtrOkul = SchoolManager.GetSinavOturumOkullari(oturum.SinavOturumId);

                        foreach (var okul in sinavOtrOkul)
                        {
                            sinavoturumokulu.SchoolId      = okul.SchoolId;
                            sinavoturumokulu.SinavOturumId = oturum.SinavOturumId;

                            sinavoturumokulu.AsilGozetmenSayisi  = 0;
                            sinavoturumokulu.YedekGozetmenSayisi = 0;
                            db.SinavOturumOkullari.Add(sinavoturumokulu);
                            db.SaveChanges();
                        }
                    }

                    result = new Result(SystemRess.Messages.basarili_kayit.ToString(), SystemRess.Messages.basarili_durum.ToString());
                    return(result);
                }
                catch (Exception)
                {
                    result = new Result(SystemRess.Messages.hatali_kayit.ToString(), SystemRess.Messages.hatali_durum.ToString());
                    return(result);
                }
            }
        }