示例#1
0
        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);
        }
示例#2
0
        public ActionResult Index()
        {
            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 nobetUstGrup1 = nobetUstGruplar.FirstOrDefault();

            var nobetUstGrup = _nobetUstGrupService.GetDetay(nobetUstGrup1.Id);

            var ustGrupSession = _nobetUstGrupSessionService.GetSession("nobetUstGrup");

            if (ustGrupSession.Id != 0)
            {
                nobetUstGrup = ustGrupSession;
            }

            var gelecekTarih    = DateTime.Now.AddMonths(1);
            var gelecekAy       = gelecekTarih.Month;
            var yilCozulen      = gelecekTarih.Year;
            int aydakiGunSayisi = DateTime.DaysInMonth(yilCozulen, gelecekAy);

            if (TempData["kesinlesenNobetGrupId"] != null)
            {
                ViewBag.KesinlesenGrup            = TempData["kesinlesenNobetGrupId"];
                ViewBag.KesinlesenGrupSayisi      = TempData["KesinlesenNobetGrupSayisi"];
                ViewBag.KesinlesenBaslangicTarihi = Convert.ToDateTime(TempData["KesinlesenBaslangicTarihi"]).ToShortDateString();
                ViewBag.KesinlesenBitisTarihi     = Convert.ToDateTime(TempData["KesinlesenBitisTarihi"]).ToShortDateString();
            }

            var baslangicTarihi = DateTime.Today; //new DateTime(gelecekTarih.Year, gelecekTarih.Month, 1);
            var bitisTarihi     = new DateTime(gelecekTarih.Year, gelecekTarih.Month, aydakiGunSayisi);

            var calismalar = new List <MyDrop>()
            {
                new MyDrop {
                    Id = 0, Value = "1 kez çöz."
                },
                new MyDrop {
                    Id = 1, Value = "Çözüm yoksa tekrar çöz."
                },
                //new MyDrop{ Id = 3, Value = "" },
            };

            ViewBag.NobetUstGrupId     = new SelectList(items: nobetUstGruplar, dataValueField: "Id", dataTextField: "Adi", selectedValue: nobetUstGrup.Id);
            ViewBag.CalismaSayisi      = new SelectList(items: calismalar, dataValueField: "Id", dataTextField: "Value", selectedValue: 0);
            ViewBag.NobetUstGrupSayisi = nobetUstGruplar.Count;

            var sonNobetTarihi = _eczaneNobetSonucService.GetSonNobetTarihi(nobetUstGrup.Id);

            var model = new NobetYazViewModel
            {
                RolId           = rolId,
                NobetUstGrupId  = nobetUstGrup.Id,
                BaslangicTarihi = sonNobetTarihi < nobetUstGrup.BaslangicTarihi ? nobetUstGrup.BaslangicTarihi : baslangicTarihi,
                BitisTarihi     = bitisTarihi,
                SonNobetTarihi  = sonNobetTarihi < nobetUstGrup.BaslangicTarihi ? nobetUstGrup.BaslangicTarihi.AddDays(-1) : sonNobetTarihi,
                CalismaSayisi   = 0,
                TimeLimit       = nobetUstGrup.TimeLimit
            };

            if (TempData["KesinlesenBaslangicTarihi"] != null)
            {
                model.BaslangicTarihi = (DateTime)TempData["KesinlesenBaslangicTarihi"];
            }

            if (TempData["KesinlesenBitisTarihi"] != null)
            {
                model.BitisTarihi = (DateTime)TempData["KesinlesenBitisTarihi"];
            }

            if (TempData["TaslaktakiBaslamaTarihi"] != null)
            {
                model.BaslangicTarihi = (DateTime)TempData["TaslaktakiBaslamaTarihi"];
            }

            if (TempData["TaslaktakiBitisTarihi"] != null)
            {
                model.BitisTarihi = (DateTime)TempData["TaslaktakiBitisTarihi"];
            }

            return(View(model));
        }