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} ≤ {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); }
// 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)); }
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); }