public EczaneNobetSonucModel EczaneNobetCozSonuclaraEkle(IskenderunDataModel data)
        {
            var yeniSonuclar = _eczaneNobetIskenderunOptimization.Solve(data);

            _eczaneNobetSonucService.CokluEkle(yeniSonuclar.ResultModel);

            return(yeniSonuclar);
        }
        /// <summary>
        /// Her çözüm sonrasında aktif sonuçlardaki mevcut kayıtlar silinip yerine yeni sonuçlar eklenir.
        /// </summary>
        /// <param name="data"></param>
        //[TransactionScopeAspect]
        public EczaneNobetSonucModel EczaneNobetCozAktifiGuncelle(IskenderunDataModel data)
        {
            var mevcutSonuclar        = _eczaneNobetSonucAktifService.GetDetaylar2(data.NobetUstGrupId);
            var guncellenecekSonuclar = mevcutSonuclar
                                        .Where(x => data.NobetGruplar.Select(s => s.Id).Contains(x.NobetGrupId))
                                        .Select(s => s.Id).ToArray();

            var yeniSonuclar = _eczaneNobetIskenderunOptimization.Solve(data);

            //gelen datadaki nöbet grup id aktif sonuçlarda varsa o nöbet gruba ait önceki sonuçları sil
            _eczaneNobetSonucAktifService.CokluSil(guncellenecekSonuclar);
            AktiftekiArtiklariSil(data.NobetUstGrupId);

            //yeni sonuçları ekle
            _eczaneNobetSonucAktifService.CokluEkle(yeniSonuclar.ResultModel);

            return(yeniSonuclar);
        }
        private IskenderunDataModel EczaneNobetDataModel(EczaneNobetDataModelParametre eczaneNobetDataModelParametre)
        {
            #region parametreler
            var nobetUstGrupId   = eczaneNobetDataModelParametre.NobetUstGrupId;
            var nobetGrupIdListe = eczaneNobetDataModelParametre.NobetGrupId.ToList();
            //var nobetGorevTipId = eczaneNobetDataModelParametre.NobetGorevTipId;
            var nobetUstGrupBaslangicTarihi = eczaneNobetDataModelParametre.NobetUstGrupBaslangicTarihi;
            var baslangicTarihi             = eczaneNobetDataModelParametre.BaslangicTarihi;
            var bitisTarihi          = eczaneNobetDataModelParametre.BitisTarihi;
            var nobetGrupGorevTipler = eczaneNobetDataModelParametre.NobetGrupGorevTipler.Where(W => nobetGrupIdListe.Contains(W.NobetGrupId)).ToList();
            var nobetGorevTipler     = eczaneNobetDataModelParametre.NobetGrupGorevTipler.Select(s => s.NobetGorevTipId).Distinct().ToList();
            #endregion

            if (baslangicTarihi < nobetUstGrupBaslangicTarihi)
            {
                throw new Exception($"Nöbet başlangıç tarihi <strong>({baslangicTarihi.ToShortDateString()})</strong> üst grup başlama tarihinden <strong>({nobetUstGrupBaslangicTarihi.ToShortDateString()})</strong> küçük olamaz.");
            }

            var debugYapilacakEczaneler = _debugEczaneService.GetDetaylarAktifOlanlar(nobetUstGrupId);

            var nobetGruplar = _nobetGrupService.GetDetaylar(nobetGrupIdListe).OrderBy(s => s.Id).ToList();
            //var nobetGrupGorevTipler = _nobetGrupGorevTipService.GetDetaylar(nobetGrupIdListe); //nobetGorevTipId,
            var eczaneNobetSonuclar = _eczaneNobetSonucService.GetSonuclar(nobetUstGrupId);

            var eczaneNobetMazeretNobettenDusenler = new List <EczaneNobetMazeretSayilari>();

            var mazeret = _nobetUstGrupKisitService.GetKisitPasifMi("mazeret", nobetUstGrupId);

            if (mazeret)
            {
                eczaneNobetMazeretNobettenDusenler = _eczaneNobetMazeretService.GetEczaneNobetMazeretSayilari(baslangicTarihi, bitisTarihi, nobetGrupIdListe);
            }

            var eczaneNobetGruplarTumu = _eczaneNobetGrupService.GetDetaylar(nobetGrupIdListe, baslangicTarihi, bitisTarihi)
                                         .Where(w => !eczaneNobetMazeretNobettenDusenler.Select(s => s.EczaneNobetGrupId).Contains(w.Id)
                                                //&& w.EczaneAdi == "ÖZGÜR"
                                                ).ToList();

            var nobetGorevTipId = 7;
            //if (!nobetGorevTipler.Contains(nobetGorevTipId))
            //    nobetGorevTipId = 0;

            //var eczaneNobetGruplarGorevTip1 = eczaneNobetGruplarTumu
            //    .Where(w => w.NobetGorevTipId == nobetGorevTipId).ToList();

            //nobetGorevTipId = 2;
            //if (!nobetGorevTipler.Contains(nobetGorevTipId))
            //    nobetGorevTipId = 0;

            //var eczaneNobetGruplarGorevTip2 = eczaneNobetGruplarTumu
            //    .Where(w => w.NobetGorevTipId == nobetGorevTipId).ToList();

            var eczaneNobetSonuclarOncekiAylar = eczaneNobetSonuclar
                                                 .Where(w => w.Tarih >= nobetUstGrupBaslangicTarihi &&
                                                        eczaneNobetGruplarTumu.Select(s => s.Id).Contains(w.EczaneNobetGrupId) //görevtip: tümü
                                                                                                                               //&& eczaneNobetGruplarGorevTip1.Select(s => s.Id).Contains(w.EczaneNobetGrupId) //görevtip: 1
                                                        ).ToList();

            var eczaneNobetSonuclarCozulenGruplar = eczaneNobetSonuclar
                                                    .Where(w => eczaneNobetGruplarTumu.Select(s => s.Id).Contains(w.EczaneNobetGrupId)).ToList();

            var sonuclarKontrol = _eczaneNobetSonucService.GetSonuclar(baslangicTarihi, bitisTarihi, eczaneNobetSonuclarCozulenGruplar);

            if (sonuclarKontrol.Count > 0)
            {
                throw new Exception("Kriterlere uygun <strong>daha önce yazılmış nöbetler</strong> bulunmaktadır. Lütfen kontrol ediniz!");
            }

            var enSonNobetler = _eczaneNobetOrtakService.GetEczaneNobetGrupGunKuralIstatistik(eczaneNobetGruplarTumu, eczaneNobetSonuclarCozulenGruplar);

            var eczaneNobetGrupGunKuralIstatistikYatay = _eczaneNobetOrtakService.GetEczaneNobetGrupGunKuralIstatistikYatay(enSonNobetler);
            var eczaneBazliGunKuralIstatistikYatay     = _eczaneNobetOrtakService.GetEczaneBazliGunKuralIstatistikYatay(enSonNobetler);

            //var bak = eczaneNobetGrupGunKuralIstatistikYatay.Where(w => w.NobetGorevTipId == 2).ToList();

            var anahtarListe = eczaneNobetSonuclar
                               .Where(w => w.Tarih < nobetUstGrupBaslangicTarihi && nobetGrupIdListe.Contains(w.NobetGrupId)).ToList();

            //var haftaIciAnahtarListeTumEczaneler = _takvimService.AnahtarListeyiBuGuneTasi(nobetGrupIdListe, 1, nobetUstGrupBaslangicTarihi, eczaneNobetGruplarTumu, eczaneNobetGrupGunKuralIstatistikYatay, anahtarListe, "Hafta İçi");
            var haftaIciAnahtarListeTumEczaneler = _takvimService.AnahtarListeyiBuGuneTasi(nobetGrupIdListe, nobetGorevTipId, nobetUstGrupBaslangicTarihi, eczaneNobetGruplarTumu, eczaneNobetGrupGunKuralIstatistikYatay, anahtarListe, "Hafta İçi");

            var nobetBorcluEczanelerhaftaIci = (from s in eczaneNobetGrupGunKuralIstatistikYatay
                                                from b in haftaIciAnahtarListeTumEczaneler
                                                where s.EczaneNobetGrupId == b.EczaneNobetGrupId &&
                                                s.NobetSayisiHaftaIci == b.NobetSayisi
                                                select new EczaneNobetAlacakVerecek
            {
                EczaneNobetGrupId = s.EczaneNobetGrupId,
                EczaneId = s.EczaneId,
                EczaneAdi = s.EczaneAdi,
                NobetGrupAdi = s.NobetGrupAdi,
                NobetGrupId = s.NobetGrupId,
                NobetSayisi = s.NobetSayisiHaftaIci,
                SonNobetTarihi = s.SonNobetTarihiHaftaIci,
                AnahtarTarih = b.Tarih,
                BorcluGunSayisi = (int)(s.NobetSayisiHaftaIci > 0
                                                            ? (s.SonNobetTarihiHaftaIci - b.Tarih).TotalDays
                                                            : (s.SonNobetTarihiHaftaIci - b.Tarih).TotalDays - (s.SonNobetTarihiHaftaIci - b.NobetUstGrupBaslamaTarihi).TotalDays),
                GunGrupAdi = "Hafta İçi"
            }).ToList();

            foreach (var eczane in nobetBorcluEczanelerhaftaIci)
            {
                eczaneNobetGrupGunKuralIstatistikYatay
                .Where(w => w.EczaneNobetGrupId == eczane.EczaneNobetGrupId)
                .FirstOrDefault().BorcluNobetSayisiHaftaIci = (int)eczane.BorcluGunSayisi;
            }

            var grupluEczaneNobetSonuclar = _eczaneNobetSonucService.GetSonuclar(baslangicTarihi, bitisTarihi, eczaneNobetSonuclar);

            var eczaneGrupEdges = _eczaneGrupService.GetEdges(nobetUstGrupId)
                                  .Where(e => (nobetGrupIdListe.Contains(e.FromNobetGrupId) ||
                                               nobetGrupIdListe.Contains(e.ToNobetGrupId)))
                                  .Where(w => (grupluEczaneNobetSonuclar.Select(s => s.EczaneId).Distinct().Contains(w.From) ||
                                               grupluEczaneNobetSonuclar.Select(s => s.EczaneId).Distinct().Contains(w.To))
                                         ).ToList();

            //sonuçlarda ilişkili eczaneler
            var eczaneGruplar = _eczaneGrupService.GetDetaylarAktifGruplar(nobetUstGrupId)
                                .Where(x => (eczaneGrupEdges.Select(s => s.From).Distinct().Contains(x.EczaneId) || eczaneGrupEdges.Select(s => s.To).Distinct().Contains(x.EczaneId)) ||
                                       nobetGrupIdListe.Contains(x.NobetGrupId)
                                       ).ToList();

            //fazladan gelen tanımlar var iyileştirmekte fayda var
            var eczaneGrupTanimlar = _eczaneGrupTanimService.GetDetaylarAktifTanimList(eczaneGruplar.Select(x => x.EczaneGrupTanimId).ToList());
            var eczaneGruplar2     = _eczaneGrupService.GetDetaylarByEczaneGrupTanimId(eczaneGrupTanimlar.Select(s => s.Id).ToList());

            var eczaneGrupNobetSonuclar = grupluEczaneNobetSonuclar
                                          .Where(w => eczaneGruplar2.Select(s => s.EczaneId).Contains(w.EczaneId)).ToList();

            //nöbet yazılacak tarih aralığı(örn. Ocak ayının tüm günleri)
            var tarihAralik = _takvimService.GetTakvimNobetGruplar(baslangicTarihi, bitisTarihi, nobetGrupGorevTipler);

            var eczaneKumulatifHedefler  = new List <EczaneNobetIstatistik>();
            var eczaneNobetIstatistikler = new List <EczaneNobetIstatistik>();

            //2.görev tipi için sadece cumartesi olduğu için tüm günler tüm görev tiplerini almaya gerek yok.
            //var eczaneNobetTarihAralik = _takvimService.GetEczaneNobetTarihAralik(baslangicTarihi, bitisTarihi, nobetGrupGorevTipler)
            //    .Where(w => eczaneNobetGruplar.Select(s => s.EczaneId).Contains(w.EczaneId)).ToList();
            var nobetGrupGorevTipGunKurallar = _nobetGrupGorevTipGunKuralService.GetDetaylarAktifList(nobetGrupGorevTipler.Select(s => s.Id).ToList());

            var eczaneNobetTarihAralikTumu = _takvimService.GetEczaneNobetTarihAralik(baslangicTarihi, bitisTarihi, nobetGorevTipId, nobetGrupIdListe)
                                             .Where(w => eczaneNobetGruplarTumu.Select(s => s.EczaneId).Contains(w.EczaneId)).ToList();
            //new List<EczaneNobetTarihAralik>();

            //foreach (var nobetGrupGorevTip in nobetGrupGorevTipler)
            //{
            //    nobetGorevTipId = nobetGrupGorevTip.NobetGorevTipId;
            //    var nobetGrupGorevTip1 = nobetGrupGorevTipler.Where(w => w.NobetGorevTipId == nobetGorevTipId).ToList();

            //    var eczaneNobetTarihAralik1 = _takvimService.GetEczaneNobetTarihAralik(baslangicTarihi, bitisTarihi, nobetGrupGorevTip1)
            //        .Where(w => eczaneNobetGruplarTumu.Select(s => s.Id).Contains(w.EczaneNobetGrupId)).ToList();

            //    eczaneNobetTarihAralikTumu.AddRange(eczaneNobetTarihAralik1);
            //}

            var eczaneNobetTarihAralik = _eczaneNobetOrtakService.AmacFonksiyonuKatsayisiBelirle(eczaneNobetTarihAralikTumu, eczaneNobetGrupGunKuralIstatistikYatay);

            //2. karar değişkeni. her eczane ve ilgili altgrup
            var eczaneNobetAltGrupTarihAralik = _takvimService.GetEczaneNobetAltGrupTarihAralik(baslangicTarihi, bitisTarihi, nobetGorevTipId, nobetGrupIdListe)
                                                .Where(w => eczaneNobetGruplarTumu.Select(s => s.EczaneId).Contains(w.EczaneId)).ToList();

            var ikiliEczaneler = _ayniGunTutulanNobetService.GetDetaylar(nobetGrupIdListe);

            var eczaneNobetIstekler = _eczaneNobetIstekService.GetDetaylarByNobetGrupIdList(baslangicTarihi, bitisTarihi.AddDays(10), nobetGrupIdListe)
                                      .Where(w => eczaneNobetGruplarTumu.Select(s => s.EczaneId).Contains(w.EczaneId)).ToList();

            var eczaneNobetMazeretler = _eczaneNobetMazeretService.GetDetaylarByEczaneIdList(baslangicTarihi, bitisTarihi, eczaneNobetGruplarTumu.Select(s => s.EczaneId).Distinct().ToList())
                                        .Where(w => w.MazeretId != 3)
                                        .ToList();

            var takvimNobetGrupGunDegerIstatistikler = _takvimService.GetTakvimNobetGrupGunDegerIstatistikler(nobetUstGrupBaslangicTarihi, bitisTarihi, nobetGrupGorevTipler);

            var eczaneNobetGrupAltGruplar           = _eczaneNobetGrupAltGrupService.GetDetaylar(nobetUstGrupId);
            var eczaneNobetGrupAltGruplarAcil       = _eczaneNobetGrupAltGrupService.GetDetaylarByNobetGrupId(53).Where(w => w.NobetAltGrupId == 37).ToList();
            var eczaneNobetGrupAltGruplarPalmiye    = _eczaneNobetGrupAltGrupService.GetDetaylarByNobetGrupId(54).Where(w => w.NobetAltGrupId == 43).ToList();
            var eczaneNobetGrupAltGruplarYeniDevlet = _eczaneNobetGrupAltGrupService.GetDetaylarByNobetGrupId(54).Where(w => w.NobetAltGrupId == 44).ToList();

            var altGruplarlaAyniGunNobetTutma           = _nobetUstGrupKisitService.GetDetay("altGruplarlaAyniGunNobetTutma", nobetUstGrupId);
            var altGruplarlaAyniGunNobetTutmaPalmiye    = altGruplarlaAyniGunNobetTutma;//_nobetUstGrupKisitService.GetDetay("altGruplarlaAyniGunNobetTutma", nobetUstGrupId);
            var altGruplarlaAyniGunNobetTutmaYeniDevlet = altGruplarlaAyniGunNobetTutma;

            var eczaneNobetSonuclarAltGruplaAyniGun           = new List <EczaneNobetSonucListe2>();
            var eczaneNobetSonuclarAltGruplaAyniGunPalmiye    = new List <EczaneNobetSonucListe2>();
            var eczaneNobetSonuclarAltGruplaAyniGunYeniDevlet = new List <EczaneNobetSonucListe2>();

            var indisId = 0;

            var altGruplarlaAyniGunNobetTutmayacakEczanelerCarsi      = new List <EczaneGrupDetay>();
            var altGruplarlaAyniGunNobetTutmayacakEczanelerSsk        = new List <EczaneGrupDetay>();
            var altGruplarlaAyniGunNobetTutmayacakEczanelerYeniDevlet = new List <EczaneGrupDetay>();

            if (!altGruplarlaAyniGunNobetTutma.PasifMi)
            {
                //indisId = eczaneGruplar2.Select(s => s.EczaneGrupTanimId).Max();

                #region çarşı

                var altGrupluTakipEdilecekNobetGrupIdList =
                    new List <int> {
                    44,                 //Çarşı
                    53,                 //SSK - alt grubu olan
                };

                var eczaneNobetGruplarAltGruplaAyniGun = _eczaneNobetGrupService.GetDetaylar(altGrupluTakipEdilecekNobetGrupIdList, baslangicTarihi, bitisTarihi)
                                                         .Where(w => !eczaneNobetMazeretNobettenDusenler.Select(s => s.EczaneNobetGrupId).Contains(w.Id)).ToList();

                eczaneNobetSonuclarAltGruplaAyniGun = eczaneNobetSonuclar
                                                      .Where(w => altGrupluTakipEdilecekNobetGrupIdList.Contains(w.NobetGrupId)).ToList();

                var ayniGunNobetTutmasiTakipEdilecekGruplar = new List <int>
                {
                    44,    //Çarşı
                };
                var altGrubuOlanNobetGruplar = new List <int>
                {
                    53    //SSK
                };

                altGruplarlaAyniGunNobetTutmayacakEczanelerCarsi = _eczaneNobetOrtakService.AltGruplarlaSiraliNobetListesiniOlusturMersin(eczaneNobetSonuclarAltGruplaAyniGun, eczaneNobetGruplarAltGruplaAyniGun, eczaneNobetGrupAltGruplarAcil, altGruplarlaAyniGunNobetTutma, nobetUstGrupBaslangicTarihi, indisId, ayniGunNobetTutmasiTakipEdilecekGruplar, altGrubuOlanNobetGruplar, 37, (int)altGruplarlaAyniGunNobetTutma.SagTarafDegeri);
                #endregion
            }

            if (!altGruplarlaAyniGunNobetTutmaPalmiye.PasifMi)
            {
                //indisId = eczaneGruplar2.Select(s => s.EczaneGrupTanimId).Max();

                #region ssk

                var altGrupluTakipEdilecekNobetGrupIdList =
                    new List <int> {
                    53,                        //SSK
                    54,                        //Gelişim - alt grubu olan
                };

                var eczaneNobetGruplarAltGruplaAyniGun = _eczaneNobetGrupService.GetDetaylar(altGrupluTakipEdilecekNobetGrupIdList, baslangicTarihi, bitisTarihi)
                                                         .Where(w => !eczaneNobetMazeretNobettenDusenler.Select(s => s.EczaneNobetGrupId).Contains(w.Id)).ToList();

                eczaneNobetSonuclarAltGruplaAyniGun = eczaneNobetSonuclar
                                                      .Where(w => altGrupluTakipEdilecekNobetGrupIdList.Contains(w.NobetGrupId)).ToList();

                var ayniGunNobetTutmasiTakipEdilecekGruplar = new List <int>
                {
                    53,    //ssk
                };
                var altGrubuOlanNobetGruplar = new List <int>
                {
                    54    //gelişim
                };

                altGruplarlaAyniGunNobetTutmayacakEczanelerSsk = _eczaneNobetOrtakService.AltGruplarlaSiraliNobetListesiniOlusturMersin(eczaneNobetSonuclarAltGruplaAyniGun, eczaneNobetGruplarAltGruplaAyniGun, eczaneNobetGrupAltGruplarPalmiye, altGruplarlaAyniGunNobetTutma, nobetUstGrupBaslangicTarihi, indisId, ayniGunNobetTutmasiTakipEdilecekGruplar, altGrubuOlanNobetGruplar, 43, (int)altGruplarlaAyniGunNobetTutmaPalmiye.SagTarafDegeri);

                altGruplarlaAyniGunNobetTutmayacakEczanelerYeniDevlet = _eczaneNobetOrtakService.AltGruplarlaSiraliNobetListesiniOlusturMersin(eczaneNobetSonuclarAltGruplaAyniGun, eczaneNobetGruplarAltGruplaAyniGun, eczaneNobetGrupAltGruplarYeniDevlet, altGruplarlaAyniGunNobetTutma, nobetUstGrupBaslangicTarihi, indisId, ayniGunNobetTutmasiTakipEdilecekGruplar, altGrubuOlanNobetGruplar, 44, (int)altGruplarlaAyniGunNobetTutmaYeniDevlet.SagTarafDegeri);
                #endregion
            }


            #region önceki aylar aynı gün nöbet tutanlar çözülen ayda aynı gün nöbetçi olmasın

            var oncekiAylardaAyniGunNobetTutanEczaneler = new List <EczaneGrupDetay>();

            var oncekiAylarAyniGunNobet = _nobetUstGrupKisitService.GetDetay("oncekiAylarAyniGunNobet", nobetUstGrupId);

            if (!oncekiAylarAyniGunNobet.PasifMi)
            {
                oncekiAylardaAyniGunNobetTutanEczaneler = _eczaneNobetSonucService.OncekiAylardaAyniGunNobetTutanlar(baslangicTarihi, eczaneNobetSonuclarOncekiAylar, 0, (int)oncekiAylarAyniGunNobet.SagTarafDegeri);
            }

            #endregion

            #region sonraki aydaki istekler
            var sonrakiAy            = bitisTarihi.AddDays(1);
            var bitisTarihiSonrakiAy = bitisTarihi.AddMonths((int)oncekiAylarAyniGunNobet.SagTarafDegeri + 2);

            var eczaneNobetIsteklerSonrakiDonem = _eczaneNobetIstekService.GetDetaylarByNobetGrupIdList(sonrakiAy, bitisTarihiSonrakiAy, nobetGrupIdListe)
                                                  .Where(w => eczaneNobetGruplarTumu.Select(s => s.EczaneId).Contains(w.EczaneId)).ToList();

            var sonrakiDonemAyniGunNobetIstekGirilenler = _eczaneNobetIstekService.SonrakiAylardaAyniGunIstekGirilenEczaneler(eczaneNobetIsteklerSonrakiDonem);
            #endregion

            var nobetGrupKurallar = _nobetGrupKuralService.GetDetaylarByNobetGrupGorevTipIdList(nobetGrupGorevTipler.Select(s => s.Id).ToList());

            var nobetUstGrupKisitlar = _nobetUstGrupKisitService.GetDetaylar(nobetUstGrupId);
            var grupBazliKisitlar    = _nobetGrupGorevTipKisitService.GetDetaylar(nobetUstGrupId);

            var iskenderunDataModel = new IskenderunDataModel()
            {
                Yil                         = eczaneNobetDataModelParametre.YilBaslangic,
                Ay                          = eczaneNobetDataModelParametre.AyBitis,
                TimeLimit                   = eczaneNobetDataModelParametre.TimeLimit,
                CalismaSayisiLimit          = eczaneNobetDataModelParametre.CalismaSayisi,
                LowerBound                  = 0,
                UpperBound                  = 1,
                BaslangicTarihi             = baslangicTarihi,
                BitisTarihi                 = bitisTarihi,
                NobetUstGrupBaslangicTarihi = nobetUstGrupBaslangicTarihi,
                NobetUstGrupId              = nobetUstGrupId,
                EczaneNobetTarihAralik      = eczaneNobetTarihAralik,  //karar değişkeni
                EczaneKumulatifHedefler     = eczaneKumulatifHedefler, //.Where(w => w.EczaneId != 121).ToList(),
                EczaneNobetIstatistikler    = eczaneNobetIstatistikler,
                EczaneNobetMazeretler       = eczaneNobetMazeretler,
                EczaneGrupTanimlar          = eczaneGrupTanimlar,
                TarihAraligi                = tarihAralik,
                NobetGruplar                = nobetGruplar,
                EczaneGruplar               = eczaneGruplar2,
                //AyniGunNobetTutanEsGruplar = ayniGunNoetTutanEczaneGruplar,
                AltGruplarlaAyniGunNobetTutmayacakEczanelerCarsi      = altGruplarlaAyniGunNobetTutmayacakEczanelerCarsi,
                AltGruplarlaAyniGunNobetTutmayacakEczanelerSsk        = altGruplarlaAyniGunNobetTutmayacakEczanelerSsk,
                AltGruplarlaAyniGunNobetTutmayacakEczanelerYeniDevlet = altGruplarlaAyniGunNobetTutmayacakEczanelerYeniDevlet,
                OncekiAylardaAyniGunNobetTutanEczaneler = oncekiAylardaAyniGunNobetTutanEczaneler,
                EczaneNobetIstekler          = eczaneNobetIstekler,
                NobetGrupGunKurallar         = _nobetGrupGunKuralService.GetDetaylarAktifList(nobetGrupIdListe),
                NobetGrupGorevTipGunKurallar = _nobetGrupGorevTipGunKuralService.GetDetaylarAktifList(nobetGrupGorevTipler.Select(s => s.Id).ToList()),
                NobetGrupKurallar            = nobetGrupKurallar,
                NobetGrupGorevTipler         = nobetGrupGorevTipler,
                NobetGrupTalepler            = _nobetGrupTalepService.GetDetaylar(nobetGrupIdListe, baslangicTarihi, bitisTarihi),
                EczaneNobetGruplar           = eczaneNobetGruplarTumu,
                Kisitlar                                = nobetUstGrupKisitlar,
                NobetUstGrupKisitlar                    = nobetUstGrupKisitlar,
                EczaneGrupNobetSonuclar                 = eczaneGrupNobetSonuclar,
                EczaneNobetSonuclar                     = eczaneNobetSonuclarCozulenGruplar,
                EczaneGrupNobetSonuclarTumu             = eczaneNobetSonuclar,
                EczaneNobetSonuclarAltGruplarlaBirlikte = eczaneNobetSonuclarAltGruplaAyniGun,
                EczaneNobetGrupGunKuralIstatistikler    = enSonNobetler,
                TakvimNobetGrupGunDegerIstatistikler    = takvimNobetGrupGunDegerIstatistikler,
                EczaneNobetGrupGunKuralIstatistikYatay  = eczaneNobetGrupGunKuralIstatistikYatay,
                EczaneBazliGunKuralIstatistikYatay      = eczaneBazliGunKuralIstatistikYatay,
                EczaneNobetGrupAltGruplar               = eczaneNobetGrupAltGruplar,
                IkiliEczaneler                          = ikiliEczaneler,
                SonrakiDonemAyniGunNobetIstekGirilenler = sonrakiDonemAyniGunNobetIstekGirilenler,
                NobetGrupGorevTipKisitlar               = grupBazliKisitlar,
                EczaneNobetAltGrupTarihAralik           = eczaneNobetAltGrupTarihAralik,
                NobetAltGruplar                         = _nobetAltGrupService.GetDetaylar(nobetUstGrupId),
                AyniGunNobetTakipGrupAltGruplar         = _ayniGunNobetTakipGrupAltGrupService.GetDetaylar(nobetUstGrupId),
                DebugYapilacakEczaneler                 = debugYapilacakEczaneler
            };

            //_eczaneNobetOrtakService.KurallariKontrolEtHaftaIciEnAzEnCok(nobetUstGrupId, eczaneNobetGrupGunKuralIstatistikYatay);
            _eczaneNobetOrtakService.KurallariKontrolEtMazeretIstek(nobetUstGrupId, eczaneNobetMazeretler, eczaneNobetIstekler);
            _eczaneNobetOrtakService.KurallariKontrolEtIstek(nobetUstGrupId, eczaneNobetIstekler, nobetGrupKurallar);

            return(iskenderunDataModel);
        }