public EczaneNobetSonucModel EczaneNobetCozSonuclaraEkle(KirikhanDataModel data)
        {
            var yeniSonuclar = _eczaneNobetKirikhanOptimization.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(KirikhanDataModel 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 = _eczaneNobetKirikhanOptimization.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 KirikhanDataModel 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;
            var nobetGorevTipler     = eczaneNobetDataModelParametre.NobetGrupGorevTipler.Select(s => s.NobetGorevTipId).Distinct().ToList();

            var yazBaslangic = new DateTime(baslangicTarihi.Year, 6, 1);
            var yazBitis     = new DateTime(baslangicTarihi.Year, 9, 15);

            #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 = 1;
            if (!nobetGorevTipler.Contains(nobetGorevTipId))
            {
                nobetGorevTipId = 0;
            }

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

            nobetGorevTipId = 13;
            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 son3Ay = baslangicTarihi.AddMonths(-2);

            var eczaneNobetSonuclarSon3Ay = eczaneNobetSonuclarCozulenGruplar
                                            .Where(w => w.Tarih >= son3Ay).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 tarihAralik = _takvimService.GetTakvimNobetGruplar(baslangicTarihi, bitisTarihi, nobetGrupGorevTipler);

            var tarihAralikTumu = _takvimService.GetTakvimNobetGruplar(nobetUstGrupBaslangicTarihi, bitisTarihi, nobetGrupGorevTipler);

            var yazDonemiTarihAraligiCts = tarihAralikTumu
                                           .Where(w => (w.Tarih >= yazBaslangic &&
                                                        w.Tarih >= baslangicTarihi &&
                                                        w.Tarih <= yazBitis) &&
                                                  w.NobetGunKuralId == 7 &&
                                                  w.NobetGorevTipId == 13
                                                  ).ToList();

            //var haftaSonlari = tarihAralik.Where(w => w.NobetGunKuralId == 7).ToList();

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

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

            var eczaneNobetGrupGunKuralIstatistikYataySon3Ay = _eczaneNobetOrtakService.GetEczaneNobetGrupGunKuralIstatistikYatay(enSonNobetlerSon3Ay);

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

            var nobetBorcOdeme = _nobetUstGrupKisitService.GetDetay(39, nobetUstGrupId);

            if (nobetBorcOdeme.Id == 39)
            {
                var anahtarListe = eczaneNobetSonuclar
                                   .Where(w => w.Tarih < nobetUstGrupBaslangicTarihi && nobetGrupIdListe.Contains(w.NobetGrupId)).ToList();

                var borcTakipEdilecekGunGruplar = new int[]
                {
                    //1,
                    //3,
                    4
                };

                var gunGruplar = tarihAralik
                                 .Where(w => borcTakipEdilecekGunGruplar.Contains(w.GunGrupId))
                                 .Select(s => new { s.GunGrupId, s.GunGrupAdi })
                                 .Distinct()
                                 .OrderBy(o => o.GunGrupId).ToList();

                foreach (var gunGrup in gunGruplar)
                {
                    var haftaIciAnahtarListeTumEczaneler = _takvimService.AnahtarListeyiBuGuneTasi(nobetGrupGorevTipler, eczaneNobetGruplarTumu, eczaneNobetGrupGunKuralIstatistikYatay, anahtarListe, gunGrup.GunGrupAdi);

                    var nobetBorcEczaneler = (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 = gunGrup.GunGrupId == 1
                                                      ? s.NobetSayisiPazar
                                                      : gunGrup.GunGrupId == 4
                                                      ? s.NobetSayisiCumartesi
                                                      : s.NobetSayisiHaftaIci,
                        SonNobetTarihi = gunGrup.GunGrupId == 1
                                                      ? s.SonNobetTarihiPazar
                                                      : gunGrup.GunGrupId == 4
                                                      ? s.SonNobetTarihiCumartesi
                                                      : s.SonNobetTarihiHaftaIci,
                        AnahtarTarih = b.Tarih,
                        BorcluGunSayisi = gunGrup.GunGrupId == 1
                                                      ? ((int)(s.NobetSayisiPazar > 0
                                                          ? (s.SonNobetTarihiPazar - b.Tarih).TotalDays
                                                          : (s.SonNobetTarihiPazar - b.Tarih).TotalDays - (s.SonNobetTarihiPazar - b.NobetUstGrupBaslamaTarihi).TotalDays))
                                                      : gunGrup.GunGrupId == 4
                                                      ? ((int)(s.NobetSayisiCumartesi > 0
                                                          ? (s.SonNobetTarihiCumartesi - b.Tarih).TotalDays
                                                          : (s.SonNobetTarihiCumartesi - b.Tarih).TotalDays - (s.SonNobetTarihiCumartesi - b.NobetUstGrupBaslamaTarihi).TotalDays))
                                                      : ((int)(s.NobetSayisiHaftaIci > 0
                                                          ? (s.SonNobetTarihiHaftaIci - b.Tarih).TotalDays
                                                          : (s.SonNobetTarihiHaftaIci - b.Tarih).TotalDays - (s.SonNobetTarihiHaftaIci - b.NobetUstGrupBaslamaTarihi).TotalDays)),
                        GunGrupAdi = gunGrup.GunGrupAdi,
                        GunGrupId = gunGrup.GunGrupId
                    }).ToList();

                    foreach (var eczane in nobetBorcEczaneler)
                    {
                        if (gunGrup.GunGrupId == 1)
                        {
                            //eczaneNobetGrupGunKuralIstatistikYatay
                            //.Where(w => w.EczaneNobetGrupId == eczane.EczaneNobetGrupId)
                            //.FirstOrDefault().bo = (int)eczane.BorcluGunSayisi;
                        }
                        else if (gunGrup.GunGrupId == 3)
                        {
                            eczaneNobetGrupGunKuralIstatistikYatay
                            .Where(w => w.EczaneNobetGrupId == eczane.EczaneNobetGrupId)
                            .FirstOrDefault().BorcluNobetSayisiHaftaIci = (int)eczane.BorcluGunSayisi;
                        }
                        else if (gunGrup.GunGrupId == 4)
                        {
                        }
                    }
                }
            }

            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 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());

            nobetGorevTipId = 1;

            var nobetGrupGorevTip1 = nobetGrupGorevTipler.Where(w => w.NobetGorevTipId == nobetGorevTipId).ToList();

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

            nobetGorevTipId = 13;

            var nobetGrupGorevTip2 = nobetGrupGorevTipler.Where(w => w.NobetGorevTipId == nobetGorevTipId).ToList();

            var noberGunKurallar = nobetGrupGorevTipGunKurallar
                                   .Where(w => nobetGrupGorevTip2.Select(s => s.Id).Contains(w.NobetGrupGorevTipId))
                                   .Select(s => s.NobetGunKuralId).ToList();

            var eczaneNobetTarihAralik2 = _takvimService.GetEczaneNobetTarihAralik(baslangicTarihi, bitisTarihi, nobetGrupGorevTip2, noberGunKurallar)
                                          .Where(w => eczaneNobetGruplarGorevTip2.Select(s => s.Id).Contains(w.EczaneNobetGrupId)).ToList();

            if (YazDonemiMi(baslangicTarihi, yazBaslangic, yazBitis))
            {
                eczaneNobetTarihAralik1 = eczaneNobetTarihAralik1.Where(w => !yazDonemiTarihAraligiCts.Select(s => s.TakvimId).Contains(w.TakvimId)).ToList();
                //eczaneNobetTarihAralik2 = eczaneNobetTarihAralik1.Where(w => haftaSonlari.Select(s => s.TakvimId).Contains(w.TakvimId)).ToList();
            }
            else
            {
                eczaneNobetTarihAralik2 = new List <EczaneNobetTarihAralik>();
            }

            var eczaneNobetTarihAralik3 = new List <EczaneNobetTarihAralik>();

            foreach (var nobetGrupGorevTip in nobetGrupGorevTip2)
            {
                eczaneNobetTarihAralik3 = eczaneNobetTarihAralik2.Where(w => w.NobetGrupGorevTipId == nobetGrupGorevTip.Id &&
                                                                        w.Tarih >= nobetGrupGorevTip.BaslamaTarihi && (w.Tarih <= nobetGrupGorevTip.BitisTarihi || nobetGrupGorevTip.BitisTarihi == null) &&
                                                                        yazDonemiTarihAraligiCts.Select(s => s.TakvimId).Contains(w.TakvimId)
                                                                        ).ToList();
            }

            var eczaneNobetTarihAralikTumu = eczaneNobetTarihAralik1.Union(eczaneNobetTarihAralik3).ToList();

            //var kd = eczaneNobetTarihAralikTumu.Where(w => w.EczaneAdi == "AHSEN").ToList();

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

            //var ikiliEczaneler = _ayniGunTutulanNobetService.GetDetaylar(nobetGrupIdListe);

            var eczaneNobetIstekler = _eczaneNobetIstekService.GetDetaylarByNobetGrupIdList(baslangicTarihi, bitisTarihi, 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 = new List <TakvimNobetGrupGunDegerIstatistik>();
            var takvimTumu = new List <TakvimNobetGrup>();

            var cumartesiNobetGunKuralId = new List <int> {
                7
            };

            foreach (var nobetGrupGorevTip in nobetGrupGorevTipler)
            {
                var takvimNobetGrupGunDegerIstatistiklerGorevTip = new List <TakvimNobetGrupGunDegerIstatistik>();
                var takvimAra = new List <TakvimNobetGrup>();

                if (nobetGrupGorevTip.NobetGorevTipId == 13)
                {
                    var tarihlerYaz = tarihAralikTumu
                                      .Where(w => w.NobetGorevTipId == nobetGrupGorevTip.NobetGorevTipId &&
                                             (w.Tarih >= yazBaslangic && w.Tarih <= yazBitis && w.NobetGunKuralId == 7)
                                             )
                                      .Select(s => s.TakvimId).ToArray();

                    takvimNobetGrupGunDegerIstatistiklerGorevTip = _takvimService.GetTakvimNobetGrupGunDegerIstatistikler(
                        nobetUstGrupBaslangicTarihi,
                        bitisTarihi,
                        nobetGrupGorevTip.Id,
                        tarihlerYaz).ToList();

                    takvimAra = tarihAralik
                                .Where(w => w.NobetGorevTipId == nobetGrupGorevTip.NobetGorevTipId &&
                                       (w.Tarih >= yazBaslangic && w.Tarih <= yazBitis && w.NobetGunKuralId == 7)
                                       ).ToList();
                }
                else
                {
                    var tarihlerYaz = tarihAralikTumu
                                      .Where(w => w.NobetGorevTipId == nobetGrupGorevTip.NobetGorevTipId &&
                                             !(w.Tarih >= yazBaslangic && w.Tarih <= yazBitis && w.NobetGunKuralId == 7)
                                             )
                                      .Select(s => s.TakvimId).ToArray();

                    takvimNobetGrupGunDegerIstatistiklerGorevTip = _takvimService.GetTakvimNobetGrupGunDegerIstatistikler(
                        nobetUstGrupBaslangicTarihi,
                        bitisTarihi,
                        nobetGrupGorevTip.Id,
                        tarihlerYaz).ToList();

                    takvimAra = tarihAralik
                                .Where(w => w.NobetGorevTipId == nobetGrupGorevTip.NobetGorevTipId &&
                                       !(w.Tarih >= yazBaslangic && w.Tarih <= yazBitis && w.NobetGunKuralId == 7)
                                       ).ToList();
                }

                takvimTumu.AddRange(takvimAra);
                takvimNobetGrupGunDegerIstatistikler.AddRange(takvimNobetGrupGunDegerIstatistiklerGorevTip);
            }

            //var eczaneNobetGrupAltGruplar = _eczaneNobetGrupAltGrupService.GetDetaylar(nobetUstGrupId);

            var nobetGrupKurallar = _nobetGrupKuralService.GetDetaylar(nobetGrupIdListe);

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

            var dataModel = new KirikhanDataModel()
            {
                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                                 = takvimTumu,//tarihAralik,
                NobetGruplar                                 = nobetGruplar,
                EczaneGruplar                                = eczaneGruplar2,
                EczaneNobetIstekler                          = eczaneNobetIstekler,
                NobetGrupGunKurallar                         = _nobetGrupGunKuralService.GetAktifList(nobetGrupIdListe),
                NobetGrupGorevTipGunKurallar                 = _nobetGrupGorevTipGunKuralService.GetDetaylarAktifList(nobetGrupGorevTipler.Select(s => s.Id).ToList()),
                NobetGrupKurallar                            = nobetGrupKurallar,
                NobetGrupGorevTipler                         = nobetGrupGorevTipler,
                NobetGrupTalepler                            = _nobetGrupTalepService.GetDetaylar(nobetGrupIdListe, baslangicTarihi, bitisTarihi),
                EczaneNobetGruplar                           = eczaneNobetGruplarTumu,
                Kisitlar                                     = nobetUstGrupKisitlar,
                EczaneGrupNobetSonuclar                      = eczaneGrupNobetSonuclar,
                EczaneNobetSonuclar                          = eczaneNobetSonuclarCozulenGruplar,
                EczaneGrupNobetSonuclarTumu                  = eczaneNobetSonuclar,
                EczaneNobetGrupGunKuralIstatistikler         = enSonNobetler,
                TakvimNobetGrupGunDegerIstatistikler         = takvimNobetGrupGunDegerIstatistikler,
                EczaneNobetGrupGunKuralIstatistikYatay       = eczaneNobetGrupGunKuralIstatistikYatay,
                EczaneBazliGunKuralIstatistikYatay           = eczaneBazliGunKuralIstatistikYatay,
                EczaneNobetGrupGunKuralIstatistikYataySon3Ay = eczaneNobetGrupGunKuralIstatistikYataySon3Ay,
                NobetGrupGorevTipKisitlar                    = grupBazliKisitlar,
                DebugYapilacakEczaneler                      = debugYapilacakEczaneler
            };

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

            return(dataModel);
        }