public static Result addSchool(HttpPostedFileBase file)
        {
            string path   = "~/Content/files/";
            string retval = FileManager.FileUpload(file, path);

            if (!retval.Equals(""))
            {
                List <School> schools = FileManager.ReadSchoolsFromExcel(HttpContext.Current.Server.MapPath(retval));

                if (SchoolManager.addSchools(schools))
                {
                    result = new Result(SystemRess.Messages.basarili_kayit.ToString(), SystemRess.Messages.basarili_durum.ToString());
                }
            }
            else
            {
                result = new Result(SystemRess.Messages.hatali_kayit.ToString(), SystemRess.Messages.hatali_durum.ToString());
            }
            return(result);
        }
        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);
                }
            }
        }