public ActionResult GorselAnaliz(int id = 0) { var user = _userService.GetByUserName(User.Identity.Name); var nobetUstGruplar = _nobetUstGrupService.GetListByUser(user); var nobetUstGrupId = nobetUstGruplar.Select(s => s.Id).FirstOrDefault(); ViewBag.NobetUstGrupId = new SelectList(items: nobetUstGruplar, dataValueField: "Id", dataTextField: "Adi", selectedValue: nobetUstGrupId); ViewBag.NobetUstGrupSayisi = nobetUstGruplar.Count; var eczaneGruplar = _eczaneGrupService.GetDetaylar(nobetUstGrupId); var esliEczaneSayilari = eczaneGruplar .Select(s => new { s.NobetGrupId, s.NobetGrupAdi, s.EczaneAdi, s.EczaneId, s.NobetUstGrupId }) .Distinct() .GroupBy(g => g.NobetGrupId) .Select(s => new { NobetGrupId = s.Key, EsliEczaneSayisi = s.Count() }).ToList(); var nobetGruplarGrafik = _eczaneNobetGrupService.NobetGruplarDDL(nobetUstGrupId); var grafik = esliEczaneSayilari .SelectMany(s => nobetGruplarGrafik .Where(w => w.NobetGrupId == s.NobetGrupId), (s, w) => new EczaneGrupIstatistik { NobetGrupId = s.NobetGrupId, NobetGrupAdi = w.NobetGrupAdi, GruptakiEczaneSayisi = w.EczaneSayisi, EsliEczaneSayisi = s.EsliEczaneSayisi, EsliEczaneYuzdesi = 100 * s.EsliEczaneSayisi / w.EczaneSayisi }).OrderBy(o => o.NobetGrupId).ToList(); var yetkiliNobetUstGruplar = nobetUstGruplar.Select(r => r.Id).ToArray(); //var eczaneGruplar = _eczaneGrupService.GetDetaylar() // .Where(w => yetkiliEczaneler.Contains(w.EczaneId)).ToList(); var eczaneGrupNodes = _eczaneGrupService.GetNodes(yetkiliNobetUstGruplar) .Where(s => eczaneGruplar //.Where(x => x.EczaneGrupTanimTipId == 1) .Select(w => w.EczaneId).Contains(s.Id)).ToList(); var eczaneGrupEdges = _eczaneGrupService.GetEdges(yetkiliNobetUstGruplar); ViewBag.NobetGrupAdi = grafik.Select(s => s.NobetGrupAdi).ToArray(); ViewBag.EsliEczaneSayisi = grafik.Select(s => s.EsliEczaneSayisi).ToArray(); ViewBag.GruptakiEczaneSayisi = grafik.Select(s => s.GruptakiEczaneSayisi).ToArray(); ViewBag.EsliEczaneYuzdesi = grafik.Select(s => s.EsliEczaneYuzdesi).ToArray(); var model = new EczaneGrupGorselAnalizViewModel() { EczaneGrupNodes = eczaneGrupNodes, EczaneGrupEdges = eczaneGrupEdges }; return(View(model)); }
// GET: EczaneNobet/EczaneNobetSonuc int[] nobetGrupIdList = null, int yil = 2018, int ay = 1 public ActionResult PivotSonuclar(PivotSonuclarParams pivotSonuclarParams) { var parametreler = pivotSonuclarParams; if (parametreler == null) { parametreler = new PivotSonuclarParams(); } //pivotSonuclarParams.NobetGrupIdList.ToArray(); var arr = ParseStringToIntArray(pivotSonuclarParams.NobetGrupIdList); //var user = _userService.GetByUserName(User.Identity.Name); //var nobetUstGruplar = _nobetUstGrupService.GetListByUser(user); //var nobetUstGrup = nobetUstGruplar.FirstOrDefault(); var nobetUstGrup = _nobetUstGrupSessionService.GetSession("nobetUstGrup"); var nobetUstGrupId = nobetUstGrup.Id; var nobetGruplar = _nobetGrupService.GetDetaylar(nobetUstGrupId) .Select(s => new MyDrop { Id = s.Id, Value = s.Adi }); var baslamaTarihi = pivotSonuclarParams.BaslangicTarihi; var bitisTarihi = pivotSonuclarParams.BitisTarihi; var sonuclarEski = _eczaneNobetSonucService.GetSonuclar(nobetUstGrupId) .Where(w => w.Tarih >= nobetUstGrup.BaslangicTarihi); var sonuclarAktif = _eczaneNobetSonucAktifService.GetSonuclar2(nobetUstGrupId) .Where(w => w.Tarih >= baslamaTarihi && w.Tarih <= bitisTarihi).ToList(); var tumSonuclar = sonuclarEski.Union(sonuclarAktif).ToList(); ViewBag.nobetGrup = arr.FirstOrDefault(); var beklenenGunFarklari = new List <NobetGrupBeklenenGunFarki>(); //ViewBag.NobetGruptakiEczaneSayisi var nobetGrupEczaneSayilari = arr.Count == 0 ? _eczaneNobetGrupService.NobetGruplarDDL(nobetUstGrupId) //.Where(w => arr.Contains(w.NobetGrupId)) .Select(s => new { s.NobetGrupAdi, s.EczaneSayisi }) : _eczaneNobetGrupService.NobetGruplarDDL(nobetUstGrupId) .Where(w => arr.Contains(w.NobetGrupId)) .Select(s => new { s.NobetGrupAdi, s.EczaneSayisi }); foreach (var item in nobetGrupEczaneSayilari) { beklenenGunFarklari.Add(new NobetGrupBeklenenGunFarki { NobetGrupAdi = item.NobetGrupAdi, Haftaİci = $"{Math.Round(item.EczaneSayisi * 1.2 * 0.766, 0)}-{(Math.Ceiling(item.EczaneSayisi * 1.34))}", Pazar = $"{(int)Math.Ceiling(((double)item.EczaneSayisi / 5) - 1) * 30}-{((int)Math.Ceiling((double)item.EczaneSayisi / 4) + 1) * 30}", EczaneSayisi = item.EczaneSayisi }); } ; TempData["NobetGrupId"] = pivotSonuclarParams.NobetGrupIdList; //ViewBag.YilBaslangiclar = new SelectList(yillar, null, null, yilBaslangic); //ViewBag.YilBitisler = new SelectList(yillar, null, null, pivotSonuclarParams.Yil); //if (pivotSonuclarParams.NobetGrupIdList != null) //{ // ViewBag.NobetGruplar = new SelectList(nobetGruplar, "Id", "Value", pivotSonuclarParams.NobetGrupIdList.FirstOrDefault()); //} //else //{ // ViewBag.NobetGruplar = new SelectList(nobetGruplar, "Id", "Value"); //} ViewBag.ToplamUzunluk = tumSonuclar.Count(); var gunFarklari = _eczaneNobetOrtakService.EczaneNobetIstatistikGunFarkiHesapla(tumSonuclar) .Where(w => (w.Nobet2Tarih >= baslamaTarihi && w.Nobet2Tarih <= bitisTarihi)).ToList(); var gunFarkiFrekanslar = _eczaneNobetOrtakService.EczaneNobetIstatistikGunFarkiFrekans(gunFarklari); ViewBag.ToplamUzunluk2 = gunFarklari.Count; //TempData["EczaneNobetSonuclar"] = sonucModel; var model = new EczaneNobetSonucAktifPivotSonuclarViewModel { TumSonuclar = tumSonuclar.Where(w => arr.Contains(w.NobetGrupId)).ToList(), GunFarklari = gunFarklari, GunFarklariFrekanslar = gunFarkiFrekanslar, NobetGrupBeklenenGunFarklari = beklenenGunFarklari, EczaneNobetSonuclar = (EczaneNobetSonucModel)TempData["EczaneNobetSonuclar"] ?? new EczaneNobetSonucModel(), BaslamaTarihi = baslamaTarihi, BitisTarihi = bitisTarihi }; return(View(model)); }
//[ChildActionOnly] public ActionResult NobetGruplarDDLPartialView(int nobetUstGrupId) { //int[] nobetGrupId = new int[] { 0 }; //if (TempData["NobetGrupId"] != null) //{ // nobetGrupId = (int[])TempData["NobetGrupId"]; //} var nobetGruplar = _eczaneNobetGrupService.NobetGruplarDDL(nobetUstGrupId); #region başka gruplarla ilişkisi olan gruplar var eczaneGruplar = _eczaneGrupService.GetDetaylarAktifGruplar(nobetUstGrupId); //Birbiri ile ilişkili grupların gruplanması var esliNobetGruplar = _eczaneGrupService.EsGrupluEczanelerinGruplariniBelirleTumu(eczaneGruplar, nobetGruplar.Select(s => s.NobetGrupId).ToList()); var nobetGorevTipler = nobetGruplar.Select(s => s.NobeGorevTipId).Distinct().ToList(); #endregion var nobetGruplarDDL = new List <MyDrop>(); if (esliNobetGruplar.Select(s => s.Id).Distinct().Count() > 1) { if (nobetGorevTipler.Count > 1) { nobetGruplarDDL = (from g in nobetGruplar from e in esliNobetGruplar where g.NobetGrupId == e.NobetGrupId orderby e.Id, g.NobetGrupId select new MyDrop { Id = g.NobetGrupGorevTipId, Value = $"{g.NobetGrupGorevTipId} {g.NobetGrupAdi}, {g.NobeGorevTipAdi} ({g.EczaneSayisi}), G:{e.Id}" }).ToList(); } else { nobetGruplarDDL = (from g in nobetGruplar from e in esliNobetGruplar where g.NobetGrupId == e.NobetGrupId orderby e.Id, g.NobetGrupId select new MyDrop { Id = g.NobetGrupGorevTipId, Value = $"{g.NobetGrupGorevTipId} {g.NobetGrupAdi} ({g.EczaneSayisi}), G:{e.Id}" }).ToList(); } } else { if (nobetGorevTipler.Count > 1) { nobetGruplarDDL = (from g in nobetGruplar select new MyDrop { Id = g.NobetGrupGorevTipId, Value = $"{g.NobetGrupGorevTipId} {g.NobetGrupAdi}, {g.NobeGorevTipAdi} ({g.EczaneSayisi})" }) .OrderBy(o => o.Id).ToList(); } else { nobetGruplarDDL = (from g in nobetGruplar select new MyDrop { Id = g.NobetGrupGorevTipId, Value = $"{g.NobetGrupGorevTipId} {g.NobetGrupAdi} ({g.EczaneSayisi})" }) .OrderBy(o => o.Id).ToList(); } } ViewBag.NobetGrupGorevTipId = new SelectList(nobetGruplarDDL, "Id", "Value"); ViewBag.grupSayisi = nobetGruplarDDL.Count(); TempData["NobetGrupAdi"] = nobetGruplar.Select(s => GetNobetGrupGorevTipAdlari(s.NobetUstGrupId, s.NobetGrupGorevTipId, s.NobetGrupGorevTipAdi, s.NobetGrupAdi)).ToArray(); TempData["GruptakiEczaneSayisi"] = nobetGruplar.Select(s => s.EczaneSayisi).ToArray(); return(PartialView()); }