Ejemplo n.º 1
0
        // GET: EczaneNobet/EczaneGrup
        public ActionResult Index(int id = 0)
        {
            //if (id == 0)
            //    return RedirectToAction("Index", "EczaneGrupTanim");
            //int Id = Convert.ToInt32(id);

            var user            = _userService.GetByUserName(User.Identity.Name);
            var nobetUstGruplar = _nobetUstGrupService.GetListByUser(user);
            var nobetUstGrupId  = nobetUstGruplar.Select(s => s.Id).FirstOrDefault();

            var nobetGruplar       = _nobetGrupService.GetListByNobetUstGrupId(nobetUstGrupId);
            var eczaneGrupTanimlar = _eczaneGrupTanimService.GetDetaylar(nobetUstGrupId)
                                     .Select(s => new MyDrop {
                Id = s.Id, Value = s.EczaneGrupTanimAdi
            })
                                     .OrderBy(o => o.Value);

            var grupId = 0;

            if (TempData["arananNobetGrupId"] != null)
            {
                grupId = (int)TempData["arananNobetGrupId"];
            }

            ViewBag.NobetGrupId       = new SelectList(items: nobetGruplar, dataValueField: "Id", dataTextField: "Adi", selectedValue: grupId);
            ViewBag.EczaneGrupTanimId = new SelectList(items: eczaneGrupTanimlar, dataValueField: "Id", dataTextField: "Value", selectedValue: id);
            ViewBag.grupTanimId       = id;
            ViewBag.grupId            = grupId;

            return(View());
        }
Ejemplo n.º 2
0
        // GET: EczaneNobet/EczaneUzaklikMatris
        public ActionResult Index()
        {
            //var user = _userService.GetByUserName(User.Identity.Name);
            //var nobetUstGruplar = _nobetUstGrupService.GetListByUser(user).Select(s => s.Id);
            var ustGrupSession = _nobetUstGrupSessionService.GetSession("nobetUstGrup");

            var nobetUstGrupId = ustGrupSession.Id;

            var eczaneGrupIdList = _nobetGrupService.GetListByNobetUstGrupId(nobetUstGrupId).Select(s => s.Id).ToList();

            var nobetciEczaneler = _eczaneNobetGrupService.GetAktifEczaneNobetGrupList(eczaneGrupIdList);
            //nobetciEczaneler = nobetciEczaneler.Take(10).ToList();

            var model = new EczaneUzaklikMatrisViewModel
            {
                Eczaneler      = new List <Eczane>(),
                NobetUstGrupId = nobetUstGrupId,
                //Uzakliklar = new List<EczaneUzaklikMatrisDetay>()
            };

            foreach (var item in nobetciEczaneler)
            {
                var adres           = _eczaneService.GetById(item.EczaneId).Adres;
                var enlem           = _eczaneService.GetById(item.EczaneId).Enlem;
                var boylam          = _eczaneService.GetById(item.EczaneId).Boylam;
                var telefonNo       = _eczaneService.GetById(item.EczaneId).TelefonNo;
                var adresTarifi     = _eczaneService.GetById(item.EczaneId).AdresTarifi;
                var adresTarifiKisa = _eczaneService.GetById(item.EczaneId).AdresTarifiKisa;

                model.Eczaneler.Add(new Eczane
                {
                    Id              = item.EczaneId,
                    Adi             = item.EczaneAdi,
                    Adres           = adres,
                    Enlem           = enlem,
                    Boylam          = boylam,
                    TelefonNo       = telefonNo,
                    AdresTarifi     = adresTarifi,
                    AdresTarifiKisa = adresTarifiKisa
                });
            }

            SetUzakliklarKusUcusu(model.Eczaneler);

            var sonuclar = _eczaneUzaklikMatrisService.GetDetaylar(nobetUstGrupId);

            model.Uzakliklar = sonuclar;

            return(View(model));
        }
        public ActionResult DemoPivot()
        {
            var user             = _userService.GetByUserName(User.Identity.Name);
            var nobetUstGrupId   = _nobetUstGrupService.GetListByUser(user).Select(x => x.Id).FirstOrDefault();
            var nobetGunKurallar = _nobetGunKuralService.GetList();
            var nobetGruplar     = _nobetGrupService.GetListByNobetUstGrupId(nobetUstGrupId)
                                   .Select(s => new MyDrop {
                Id = s.Id, Value = s.Adi
            });

            var sonuclarHepsi = _eczaneNobetSonucDemoService.GetSonuclar2(nobetUstGrupId);

            var yillar = sonuclarHepsi
                         .Select(s => s.Yil).Distinct()
                         .OrderBy(o => o).ToList();

            var versiyonlar = sonuclarHepsi
                              .Select(s => s.NobetSonucDemoTipId).Distinct().ToList();

            var demoTipler = _nobetSonucDemoTipService.GetList()
                             .Where(w => versiyonlar.Contains(w.Id))
                             .Select(s => new MyDrop {
                Id = s.Id, Value = s.Adi
            })
                             .OrderBy(o => o.Id).ToList();

            var pivotSekiller = _eczaneNobetOrtakService.GetPivotSekiller();

            var versiyon = demoTipler.Select(s => s.Id).LastOrDefault();
            var sekil    = 1;

            var yilBaslangic = sonuclarHepsi
                               .Where(w => w.Yil == DateTime.Now.Year)
                               .Select(s => s.Yil).Distinct()
                               .OrderBy(o => o).FirstOrDefault();

            //var yilBaslangic = sonuclar.Select(s => s.Yil).Distinct().OrderBy(o => o).FirstOrDefault();
            var yilBitis  = yillar.Where(s => s == DateTime.Now.Year).SingleOrDefault();
            var nobetGrup = 0;

            ViewBag.yilBaslangic = yilBaslangic;
            ViewBag.yilBitis     = yilBitis;
            ViewBag.versiyon     = versiyon;
            ViewBag.sekil        = sekil;
            ViewBag.nobetGrup    = nobetGrup;

            ViewBag.Versiyonlar     = new SelectList(demoTipler, "Id", "Value", versiyon);
            ViewBag.YilBaslangiclar = new SelectList(yillar, null, null, yilBaslangic);
            ViewBag.YilBitisler     = new SelectList(yillar, null, null, yilBitis);
            //ViewBag.PivotSekiller = new SelectList(pivotSekiller, "Id", "Value", sekil);
            ViewBag.NobetGruplar = new SelectList(nobetGruplar, "Id", "Value");

            var sonuclar = sonuclarHepsi.Where(s =>
                                               (s.Yil >= yilBaslangic && s.Yil <= yilBitis)
                                               //&& s.Ay == DateTime.Now.Month
                                               && s.NobetSonucDemoTipId == versiyon).ToList();

            ViewBag.ToplamUzunluk = sonuclar.Count();

            var gunFarklari = _eczaneNobetOrtakService.EczaneNobetIstatistikGunFarkiHesapla(sonuclar);

            var gunFarkiFrekanslar = _eczaneNobetOrtakService.EczaneNobetIstatistikGunFarkiFrekans(gunFarklari);

            var esGrubaAyniGunYazilanNobetler = _eczaneNobetOrtakService.GetEsGrubaAyniGunYazilanNobetler(sonuclar);

            var model = new EczaneNobetSonucViewModel
            {
                PivotSonuclar                 = sonuclar,
                GunFarklariTumSonuclar        = gunFarklari,
                GunFarklariFrekanslar         = gunFarkiFrekanslar,
                EsGrubaAyniGunYazilanNobetler = esGrubaAyniGunYazilanNobetler
            };

            return(View(model));
        }
Ejemplo n.º 4
0
        public void ModelCoz(EczaneNobetModelCoz eczaneNobetModelCoz)
        {
            var nobetGruplar = _nobetGrupService.GetListByNobetUstGrupId(eczaneNobetModelCoz.NobetUstGrupId);

            if (nobetGruplar.Count > 0)
            {
                #region başka gruplarla ilişkisi olan gruplar
                var eczaneGrupDetaylar = _eczaneGrupService.GetDetaylar()
                                         .Where(d => d.EczaneGrupTanimBitisTarihi == null &&
                                                nobetGruplar.Select(s => s.Id).Contains(d.NobetGrupId)).ToList();

                //başka gruplarla ilişkisi olan gruplar
                var esGruplar = eczaneGrupDetaylar.Select(x => x.NobetGrupId).Distinct().OrderBy(x => x).ToList();

                //Birbiri ile ilişkili grupların gruplanması
                var esliNobetGruplar = _eczaneGrupService.EsGrupluEczanelerinGruplariniBelirle(eczaneGrupDetaylar, esGruplar)
                                       .Where(w => eczaneNobetModelCoz.NobetGrupId.Contains(w.NobetGrupId)).ToList();
                //.Where(w => w.NobetGrupId == eczaneNobetModelCoz.NobetGrupId || eczaneNobetModelCoz.NobetGrupId.Contains(0)).ToList();
                #endregion

                #region başka gruplarla ilişkisi olmayan gruplar
                var tekEczaneNobetGruplar = _eczaneNobetGrupService.GetDetaylar(eczaneNobetModelCoz.NobetUstGrupId)
                                            .Where(x => !esGruplar.Contains(x.NobetGrupId)).ToList();

                var tekliNobetGruplar = tekEczaneNobetGruplar
                                        .Where(d => nobetGruplar.Select(s => s.Id).Contains(d.NobetGrupId))
                                        .Select(c => c.NobetGrupId).Distinct().ToList();
                #endregion

                #region tüm nöbet gruplar
                var tumNobetGruplar = new List <NobetBagGrup>();

                foreach (var esliNobetGrup in esliNobetGruplar.Distinct())
                {
                    tumNobetGruplar.Add(new NobetBagGrup
                    {
                        Id          = esliNobetGrup.Id,
                        NobetGrupId = esliNobetGrup.NobetGrupId
                    });
                }

                var indis = tumNobetGruplar.Select(s => s.Id).LastOrDefault();
                foreach (var tekliNobetGrup in tekliNobetGruplar.Distinct())
                {
                    indis++;
                    tumNobetGruplar.Add(new NobetBagGrup
                    {
                        Id          = indis,
                        NobetGrupId = tekliNobetGrup
                    });
                }

                var nobetGrupTanimlar = tumNobetGruplar.Select(s => s.Id).Distinct().ToList();
                #endregion

                #region Karar kuralları
                var model = new EczaneNobetDataModelParametre
                {
                    //AyBaslangic = eczaneNobetModelCoz.AyBaslangic,
                    AyBitis         = eczaneNobetModelCoz.AyBitis,
                    NobetGorevTipId = eczaneNobetModelCoz.NobetGorevTipId,
                    NobetGrupId     = eczaneNobetModelCoz.NobetGrupId,
                    NobetUstGrupId  = eczaneNobetModelCoz.NobetUstGrupId,
                    //YilBaslangic = eczaneNobetModelCoz.YilBaslangic,
                    //YilBitis = eczaneNobetModelCoz.YilBitis
                };

                if (eczaneNobetModelCoz.NobetGrupId.Contains(0) && eczaneNobetModelCoz.AyBitis == 0)
                {//ay ve gruplar --tümü--
                    foreach (var ay in _takvimService.GetAylar())
                    {
                        foreach (var item in nobetGrupTanimlar)
                        {
                            var r     = new Random();
                            var liste = tumNobetGruplar
                                        .Where(x => x.Id == item)
                                        .Select(s => s.NobetGrupId)
                                        .OrderByDescending(x => r.NextDouble()).ToList();

                            foreach (var item2 in liste)
                            {
                                var liste2 = new int[] { item2 };
                                model.AyBitis     = ay.Id;
                                model.NobetGrupId = liste2;
                                var data = EczaneNobetDataModel(model);
                                EczaneNobetCozAktifiGuncelle(data);
                                Kesinlestir(model.NobetUstGrupId);
                            }
                        }
                    }
                }
                else if (eczaneNobetModelCoz.NobetGrupId.Contains(0))
                {//ay seçili, gruplar --tümü--
                    if (eczaneNobetModelCoz.BuAyVeSonrasi)
                    {
                        var aylar = _takvimService.GetAylar()
                                    .Where(w => w.Id >= eczaneNobetModelCoz.AyBitis).ToList();

                        foreach (var ay in aylar)
                        {
                            foreach (var item in nobetGrupTanimlar)
                            {
                                var r     = new Random();
                                var liste = tumNobetGruplar
                                            .Where(x => x.Id == item)
                                            .Select(s => s.NobetGrupId)
                                            .OrderByDescending(x => r.NextDouble()).ToList();

                                foreach (var item2 in liste)
                                {
                                    var liste2 = new int[] { item2 };
                                    model.AyBitis     = ay.Id;
                                    model.NobetGrupId = liste2;
                                    var data = EczaneNobetDataModel(model);
                                    EczaneNobetCozAktifiGuncelle(data);
                                    Kesinlestir(model.NobetUstGrupId);
                                }
                            }
                        }
                    }
                    else
                    {
                        foreach (var item in nobetGrupTanimlar)
                        {
                            var liste = tumNobetGruplar
                                        .Where(x => x.Id == item)
                                        .Select(s => s.NobetGrupId)
                                        .OrderByDescending(x => x).ToList();

                            foreach (var item2 in liste)
                            {
                                var liste2 = new int[] { item2 };
                                model.NobetGrupId = liste2;
                                var data = EczaneNobetDataModel(model);
                                EczaneNobetCozAktifiGuncelle(data);
                                Kesinlestir(model.NobetUstGrupId);
                            }
                        }
                    }
                }
                else if (eczaneNobetModelCoz.AyBitis == 0)
                {//grup seçili, aylar --tümü--
                    foreach (var ay in _takvimService.GetAylar())
                    {
                        foreach (var item in tumNobetGruplar
                                 .Where(x => eczaneNobetModelCoz.NobetGrupId.Contains(x.NobetGrupId))
                                 //.Where(x => x.NobetGrupId == eczaneNobetModelCoz.NobetGrupId)
                                 .Select(s => s.Id).Distinct().ToList())
                        {
                            var liste = tumNobetGruplar
                                        .Where(x => x.Id == item)
                                        .Select(s => s.NobetGrupId)
                                        .OrderByDescending(x => x).ToList();

                            foreach (var item2 in liste)
                            {
                                var liste2 = new int[] { item2 };
                                model.AyBitis     = ay.Id;
                                model.NobetGrupId = liste2;
                                var data = EczaneNobetDataModel(model);
                                EczaneNobetCozAktifiGuncelle(data);
                                Kesinlestir(model.NobetUstGrupId);
                            }
                        }
                    }
                }
                else
                {//seçili grup ve ay
                    if (eczaneNobetModelCoz.BuAyVeSonrasi)
                    {
                        var aylar = _takvimService.GetAylar()
                                    .Where(w => w.Id >= eczaneNobetModelCoz.AyBitis).ToList();

                        foreach (var ay in aylar)
                        {
                            foreach (var item in tumNobetGruplar
                                     .Where(x => eczaneNobetModelCoz.NobetGrupId.Contains(x.NobetGrupId))
                                     //.Where(x => x.NobetGrupId == eczaneNobetModelCoz.NobetGrupId)
                                     .Select(s => s.Id).Distinct().ToList())
                            {
                                var liste = tumNobetGruplar
                                            .Where(x => x.Id == item)
                                            .Select(s => s.NobetGrupId)
                                            .OrderByDescending(x => x).ToArray();

                                model.AyBitis     = ay.Id;
                                model.NobetGrupId = liste;
                                var data = EczaneNobetDataModel(model);
                                EczaneNobetCozAktifiGuncelle(data);
                                Kesinlestir(model.NobetUstGrupId);
                            }
                        }
                    }
                    else
                    {
                        foreach (var item in tumNobetGruplar
                                 .Where(x => eczaneNobetModelCoz.NobetGrupId.Contains(x.NobetGrupId))
                                 //.Where(x => x.NobetGrupId == eczaneNobetModelCoz.NobetGrupId)
                                 .Select(s => s.Id).Distinct().ToList())
                        {
                            var liste = tumNobetGruplar
                                        .Where(x => x.Id == item)
                                        .Select(s => s.NobetGrupId)
                                        .OrderByDescending(x => x).ToArray();

                            model.NobetGrupId = liste;
                            var data = EczaneNobetDataModel(model);
                            EczaneNobetCozAktifiGuncelle(data);
                        }
                    }
                    #endregion
                }
            }
        }