// 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)); }
public ActionResult ModelCoz(NobetYazViewModel eczaneNobetViewModel) { var stopwatch = new Stopwatch(); stopwatch.Start(); if (eczaneNobetViewModel.TimeLimit > 1200) { throw new Exception($"Süre limiti en fazla {1200} saniye olabilir. Fazlası için lütfen Nöbetyaz yönetim ile irtiata geçiniz."); } var nobetUstGrup = _nobetUstGrupService.GetDetay(eczaneNobetViewModel.NobetUstGrupId); //if (ModelState.IsValid) //{ var nobetGrupGorevTipler = _nobetGrupGorevTipService.GetDetaylarByIdList(eczaneNobetViewModel.NobetGrupGorevTipId.ToList()); var nobetGrupIdList = nobetGrupGorevTipler.Select(s => s.NobetGrupId).Distinct().ToArray(); if (nobetGrupIdList == null) { nobetGrupIdList = new int[1] { 0 } } ; var eczaneNobetModelCoz = new EczaneNobetModelCoz { BuAyVeSonrasi = eczaneNobetViewModel.BuAyVeSonrasi, NobetGrupGorevTipler = nobetGrupGorevTipler, NobetGrupId = nobetGrupIdList, //eczaneNobetViewModel.NobetGrupId, NobetUstGrupId = eczaneNobetViewModel.NobetUstGrupId, RolId = eczaneNobetViewModel.RolId, AyBitis = eczaneNobetViewModel.BitisTarihi.Month, NobetUstGrupBaslangicTarihi = nobetUstGrup.BaslangicTarihi, CozumTercih = eczaneNobetViewModel.CozumTercih, SonrakiAylarRasgele = eczaneNobetViewModel.SonrakiAylarRasgele, BaslangicTarihi = eczaneNobetViewModel.BaslangicTarihi, BitisTarihi = eczaneNobetViewModel.BitisTarihi, TimeLimit = eczaneNobetViewModel.TimeLimit, CalismaSayisi = eczaneNobetViewModel.CalismaSayisi }; var sonucModel = new EczaneNobetSonucModel(); switch (nobetUstGrup.Id) { case 1: sonucModel = _alanyaOptimizationService.ModelCoz(eczaneNobetModelCoz); break; case 2: sonucModel = _antalyaMerkezOptimizationService.ModelCoz(eczaneNobetModelCoz); break; case 3: sonucModel = _mersinMerkezOptimizationServiceV2.ModelCoz(eczaneNobetModelCoz); break; case 4: sonucModel = _giresunOptimizationService.ModelCoz(eczaneNobetModelCoz); break; case 5: sonucModel = _osmaniyeOptimizationService.ModelCoz(eczaneNobetModelCoz); break; case 6: sonucModel = _bartinOptimizationService.ModelCoz(eczaneNobetModelCoz); break; case 7: sonucModel = _zonguldakOptimizationService.ModelCoz(eczaneNobetModelCoz); break; case 8: sonucModel = _iskenderunOptimizationService.ModelCoz(eczaneNobetModelCoz); break; case 9: sonucModel = _corumOptimizationService.ModelCoz(eczaneNobetModelCoz); break; case 10: sonucModel = _kirikhanOptimizationService.ModelCoz(eczaneNobetModelCoz); break; case 11: sonucModel = _diyarbakirOptimizationService.ModelCoz(eczaneNobetModelCoz); break; case 12: sonucModel = _manavgatOptimizationService.ModelCoz(eczaneNobetModelCoz); break; case 13: sonucModel = _orduMerkezOptimizationService.ModelCoz(eczaneNobetModelCoz); break; case 14: sonucModel = _kayseriOptimizationService.ModelCoz(eczaneNobetModelCoz); break; case 15: sonucModel = _antakyaOptimizationService.ModelCoz(eczaneNobetModelCoz); break; default: return(RedirectToAction("Index")); } stopwatch.Stop(); sonucModel.ToplamSure = stopwatch.Elapsed; TempData["EczaneNobetSonuclar"] = sonucModel; if (eczaneNobetModelCoz.BuAyVeSonrasi) { return(RedirectToAction("PivotSonuclar", "EczaneNobetSonuc")); //RedirectToAction("PivotCozum", "EczaneNobetSonuc", //new { area = "EczaneNobet", nobetGrup = eczaneNobetModelCoz.NobetGrupId, yilBaslangic = eczaneNobetModelCoz.BaslangicTarihi.Year, yilBitis = eczaneNobetModelCoz.BitisTarihi.Year }); } else if (eczaneNobetModelCoz.CozumTercih == 0 && eczaneNobetModelCoz.NobetGrupId.Count() > 1) { return(RedirectToAction("PivotSonuclar", "EczaneNobetSonuc")); //return RedirectToAction("PivotCozum", "EczaneNobetSonuc", // new { area = "EczaneNobet", nobetGrup = eczaneNobetModelCoz.NobetGrupId, yilBaslangic = eczaneNobetModelCoz.BaslangicTarihi.Year, yilBitis = eczaneNobetModelCoz.BitisTarihi.Year }); } else if (nobetUstGrup.Id == 6 || nobetUstGrup.Id == 7 || nobetUstGrup.Id == 8) { return(RedirectToAction("PivotSonuclar", "EczaneNobetSonuc")); //return RedirectToAction("PivotCozum", "EczaneNobetSonuc", // new { area = "EczaneNobet", nobetGrup = eczaneNobetModelCoz.NobetGrupId, yilBaslangic = eczaneNobetModelCoz.BaslangicTarihi.Year, yilBitis = eczaneNobetModelCoz.BitisTarihi.Year }); } var routeValues = new PivotSonuclarParams { Area = "EczaneNobet", BaslangicTarihi = eczaneNobetModelCoz.BaslangicTarihi, BitisTarihi = eczaneNobetModelCoz.BitisTarihi }; int sayac = 0; foreach (var item in nobetGrupIdList) { if (sayac == 0) { routeValues.NobetGrupIdList = item.ToString(); } else { routeValues.NobetGrupIdList = routeValues.NobetGrupIdList + "," + item.ToString(); } sayac++; } return(RedirectToAction("PivotSonuclar", "EczaneNobetSonucAktif", routeValues)); //} //var user = _userService.GetByUserName(User.Identity.Name); //var rolIdler = _userService.GetUserRoles(user).OrderBy(s => s.RoleId).Select(u => u.RoleId).ToArray(); //var rolId = rolIdler.FirstOrDefault(); //var nobetUstGruplar = _nobetUstGrupService.GetListByUser(user); //var nobetUstGrup = nobetUstGruplar.FirstOrDefault(); //ViewBag.NobetUstGrupId = new SelectList(items: nobetUstGruplar, dataValueField: "Id", dataTextField: "Adi", selectedValue: nobetUstGrup.Id); //ViewBag.NobetUstGrupSayisi = nobetUstGruplar.Count; //return View("Index", eczaneNobetViewModel); }