Exemple #1
0
        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));
        }
Exemple #3
0
        //[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());
        }