public List <EczaneGrupDetay> GetMesafeKriterineGoreKontrolEdilecekEczaneGruplar(int mesafeKriter, List <EczaneUzaklikMatrisDetay> eczaneMesafeler)
        {
            var mesafeKontrolEczaneler = new List <EczaneGrupDetay>();

            var nobetUstGrupId = eczaneMesafeler.Select(s => s.NobetUstGrupId).FirstOrDefault();

            var eczaneNobetGruplar = _eczaneNobetGrupService.GetDetaylar(nobetUstGrupId);

            foreach (var eczaneMesafe in eczaneMesafeler)
            {
                var eczaneNobetGrupFrom = eczaneNobetGruplar.FirstOrDefault(x => x.EczaneId == eczaneMesafe.EczaneIdFrom);
                var eczaneNobetGrupTo   = eczaneNobetGruplar.FirstOrDefault(x => x.EczaneId == eczaneMesafe.EczaneIdTo);
                ;
                var eczaneGrupMaster = new EczaneGrupDetay
                {
                    EczaneGrupTanimId = eczaneMesafe.Id,
                    //EczaneId = eczaneMesafe.EczaneIdFrom,
                    ArdisikNobetSayisi    = 0,
                    NobetUstGrupId        = nobetUstGrupId,
                    EczaneGrupTanimAdi    = $"{eczaneMesafe.Id}, {eczaneMesafe.EczaneAdiFrom}-{eczaneMesafe.EczaneAdiTo} {eczaneMesafe.Mesafe} &#8804; {mesafeKriter}",
                    EczaneGrupTanimTipAdi = $"Mesafeler aynı gün nöbet ",
                    EczaneGrupTanimTipId  = 1,
                    NobetGrupId           = 1,
                    //EczaneAdi = eczaneMesafe.EczaneAdiFrom,
                    NobetGrupAdi = "Mesafe",
                    //EczaneNobetGrupId = eczaneMesafe.EczaneIdFrom,
                    AyniGunNobetTutabilecekEczaneSayisi = 1,
                    //BirlikteNobetTutmaSayisi = item.BirlikteNobetTutmaSayisi
                    NobetGrupGorevTipIdFrom = eczaneNobetGrupFrom.NobetGrupGorevTipId,
                    NobetGrupGorevTipIdTo   = eczaneNobetGrupTo.NobetGrupGorevTipId
                };

                #region eczane from

                var eczaneFrom = eczaneGrupMaster.Clone();

                eczaneFrom.EczaneId  = eczaneMesafe.EczaneIdFrom;
                eczaneFrom.EczaneAdi = eczaneMesafe.EczaneAdiFrom;

                mesafeKontrolEczaneler.Add(eczaneFrom);

                #endregion

                #region eczane to

                var eczaneTo = eczaneGrupMaster.Clone();

                eczaneTo.EczaneId  = eczaneMesafe.EczaneIdTo;
                eczaneTo.EczaneAdi = eczaneMesafe.EczaneAdiTo;

                mesafeKontrolEczaneler.Add(eczaneTo);

                #endregion
            }

            return(mesafeKontrolEczaneler);
        }
Пример #2
0
        // GET: EczaneNobet/EczaneGrup/Delete/5
        public ActionResult Delete(int id)
        {
            if (id <= 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EczaneGrupDetay GetEczaneGrupDetaylar = _eczaneGrupService.GetDetayById(id).SingleOrDefault();

            if (GetEczaneGrupDetaylar == null)
            {
                return(HttpNotFound());
            }
            return(View(GetEczaneGrupDetaylar));
        }
Пример #3
0
        public List <EczaneGrupDetay> ArasindaKritereGoreFarkOlanEczaneler(
            List <EczaneNobetGrupDetay> eczaneNobetGruplar,
            List <AyniGunTutulanNobetDetay> ikiliEczanelerTumu,
            int nobetFarki)
        {
            var eczaneGruplar = new List <EczaneGrupDetay>();

            var kontrol = false;

            foreach (var eczaneNobetGrup in eczaneNobetGruplar)
            {
                var bakilanEczaneninIkilileri = ikiliEczanelerTumu
                                                .Where(w => w.EczaneNobetGrupId1 == eczaneNobetGrup.Id || w.EczaneNobetGrupId2 == eczaneNobetGrup.Id).ToList();

                var digerNobetGruplari = bakilanEczaneninIkilileri
                                         .Select(s => s.NobetGrupId1 == eczaneNobetGrup.NobetGrupId
                    ? s.NobetGrupId2
                    : s.NobetGrupId1).Distinct()
                                         .OrderBy(o => o).ToArray();

                var bakilanEczane = new AyniGunNobetIstatistik
                {
                    NobetGrupId       = eczaneNobetGrup.NobetGrupId,
                    NobetGrupAdi      = eczaneNobetGrup.NobetGrupAdi,
                    EczaneNobetGrupId = eczaneNobetGrup.Id,
                    EczaneAdi         = eczaneNobetGrup.EczaneAdi
                };

                #region kontrol

                if (kontrol && bakilanEczane.EczaneAdi == "BİLGE")
                {
                    var cc = eczaneGruplar.Where(w => w.EczaneGrupTanimId == 839).ToList();
                }

                #endregion

                foreach (var digerNobetGrup in digerNobetGruplari)
                {
                    var bakilanEczaneninIkilileri2 = bakilanEczaneninIkilileri
                                                     .Where(w => w.NobetGrupId1 == digerNobetGrup || w.NobetGrupId2 == digerNobetGrup).ToArray();

                    bakilanEczane.AyniGunNobetSayisiEnBuyuk = bakilanEczaneninIkilileri2.Max(x => x.AyniGunNobetSayisi);
                    bakilanEczane.AyniGunNobetSayisiEnKucuk = bakilanEczaneninIkilileri2.Min(x => x.AyniGunNobetSayisi);

                    var takipEdilecekEczaneler = bakilanEczaneninIkilileri2
                                                 .Where(w => bakilanEczane.AyniGunNobetSayisiEnBuyuk - bakilanEczane.AyniGunNobetSayisiEnKucuk >= nobetFarki &&
                                                        bakilanEczane.AyniGunNobetSayisiEnBuyuk == w.AyniGunNobetSayisi).ToList();

                    if (takipEdilecekEczaneler.Count > 0)
                    {
                        var eczaneGrupTanimId = Convert.ToInt32($"{digerNobetGrup}{eczaneNobetGrup.Id}"); //eczaneNobetGrup.Id; //10000 + eczaneNobetGrup.Id;

                        var bakilanEczaneGrupTanimAdi = $"{bakilanEczane.NobetGrupAdi}, {bakilanEczane.EczaneAdi} - nobetGrubu {digerNobetGrup}: {bakilanEczane.AyniGunNobetSayisiEnBuyuk} kez aynı gün nöbet.";

                        var bakilanEczaneEklenecek = new EczaneGrupDetay
                        {
                            EczaneGrupTanimId     = eczaneGrupTanimId,
                            EczaneId              = eczaneNobetGrup.EczaneId,
                            ArdisikNobetSayisi    = 0,
                            NobetUstGrupId        = eczaneNobetGrup.NobetUstGrupId,
                            EczaneGrupTanimAdi    = bakilanEczaneGrupTanimAdi,
                            EczaneGrupTanimTipAdi = "Tüm eczanelerle aynı gün nöbet",
                            EczaneGrupTanimTipId  = -10, //-2,
                            NobetGrupId           = eczaneNobetGrup.NobetGrupId,
                            EczaneAdi             = eczaneNobetGrup.EczaneAdi,
                            NobetGrupAdi          = eczaneNobetGrup.NobetGrupAdi,
                            EczaneNobetGrupId     = eczaneNobetGrup.Id,
                            AyniGunNobetTutabilecekEczaneSayisi = 1
                                                                  //BirlikteNobetTutmaSayisi = item.BirlikteNobetTutmaSayisi
                        };

                        eczaneGruplar.Add(bakilanEczaneEklenecek);

                        var bakilanEczaneninAktifEsGruplari         = _eczaneGrupService.GetDetaylarAktif(eczaneNobetGrup.Id);
                        var bakilanEzaneninEsGruplarindakiEczaneler = _eczaneGrupService.GetDetaylarByEczaneGrupTanimId(bakilanEczaneninAktifEsGruplari.Select(s => s.EczaneGrupTanimId).ToList()).ToList();

                        //var takipEdilecekEsGruptaOlmayanEczaneler = takipEdilecekEczaneler.Where(w=> bakilanEzaneninEsGruplarindakiEczaneler.Select(s => s.EczaneNobetGrupId).Contains(w.EczaneNobetGrupId1))
                        foreach (var takipEdilecekEczane in takipEdilecekEczaneler)
                        {
                            var nobetGrupId       = (eczaneNobetGrup.Id == takipEdilecekEczane.EczaneNobetGrupId1 ? takipEdilecekEczane.NobetGrupId2 : takipEdilecekEczane.NobetGrupId1);
                            var eczaneAdi         = (eczaneNobetGrup.Id == takipEdilecekEczane.EczaneNobetGrupId1 ? takipEdilecekEczane.EczaneAdi2 : takipEdilecekEczane.EczaneAdi1);
                            var eczaneId          = (eczaneNobetGrup.Id == takipEdilecekEczane.EczaneNobetGrupId1 ? takipEdilecekEczane.EczaneId2 : takipEdilecekEczane.EczaneId1);
                            var nobetGrupAdi      = (eczaneNobetGrup.Id == takipEdilecekEczane.EczaneNobetGrupId1 ? takipEdilecekEczane.NobetGrupAdi2 : takipEdilecekEczane.NobetGrupAdi1);
                            var eczaneNobetGrupId = (eczaneNobetGrup.Id == takipEdilecekEczane.EczaneNobetGrupId1 ? takipEdilecekEczane.EczaneNobetGrupId2 : takipEdilecekEczane.EczaneNobetGrupId1);

                            if (kontrol && eczaneAdi == "ABANT")
                            {
                            }

                            if (bakilanEzaneninEsGruplarindakiEczaneler.Select(s => s.EczaneId).Contains(eczaneId))
                            {
                                continue;
                            }

                            eczaneGruplar.Add(new EczaneGrupDetay
                            {
                                EczaneGrupTanimId     = eczaneGrupTanimId,
                                EczaneId              = eczaneId,
                                ArdisikNobetSayisi    = 0,
                                NobetUstGrupId        = eczaneNobetGrup.NobetUstGrupId,
                                EczaneGrupTanimAdi    = bakilanEczaneGrupTanimAdi,
                                EczaneGrupTanimTipAdi = "Tüm eczanelerle aynı gün nöbet",
                                EczaneGrupTanimTipId  = -10, //-2,
                                NobetGrupId           = nobetGrupId,
                                EczaneAdi             = eczaneAdi,
                                NobetGrupAdi          = nobetGrupAdi,
                                EczaneNobetGrupId     = eczaneNobetGrupId,
                                AyniGunNobetTutabilecekEczaneSayisi = 1
                                                                      //BirlikteNobetTutmaSayisi = item.BirlikteNobetTutmaSayisi
                            });
                        }
                    }
                }
            }

            return(eczaneGruplar);
        }