예제 #1
0
        public ActionResult AracListesi(AracFiltreViewModel model)
        {
            var newReservationStartDay = new DateTime(
                year: Convert.ToInt32(model.alisTarihYil),
                month: Convert.ToInt32(model.alisTarihAy),
                day: Convert.ToInt32(model.alisTarihGun),
                hour: Convert.ToInt32(model.alisSaat.Substring(0, 2)),
                minute: Convert.ToInt32(model.alisSaat.Substring(3, 2)),
                second: 0);

            var newReservationEndDay = new DateTime(
                year: Convert.ToInt32(model.donusTarihYil),
                month: Convert.ToInt32(model.donusTarihAy),
                day: Convert.ToInt32(model.donusTarihGun),
                hour: Convert.ToInt32(model.donusSaat.Substring(0, 2)),
                minute: Convert.ToInt32(model.donusSaat.Substring(3, 2)),
                second: 0);

            if (newReservationEndDay < newReservationStartDay)
            {
                return(View(model));
            }
            var res = getAraclist(model);

            ViewBag.Lokasyonlar = db.Lokasyon.ToList();
            model.aracList      = res;
            return(View(model));
        }
예제 #2
0
        public ActionResult AracListesi()
        {
            var res = getAraclist(null);

            ViewBag.Lokasyonlar = db.Lokasyon.ToList();
            AracFiltreViewModel model = new AracFiltreViewModel
            {
                aracList = res
            };

            return(View(model));
        }
예제 #3
0
        public ActionResult Anasayfa()
        {
            ViewBag.Lokasyonlar = db.Lokasyon.ToList();
            AracFiltreViewModel model = new AracFiltreViewModel
            {
                alisTarihYil = DateTime.Now.Year.ToString(),
                alisTarihAy  = DateTime.Now.Month.ToString().PadLeft(2, '0'),
                alisTarihGun = DateTime.Now.Day.ToString().PadLeft(2, '0'),

                donusTarihYil = DateTime.Now.Year.ToString(),
                donusTarihAy  = DateTime.Now.Month.ToString().PadLeft(2, '0'),
                donusTarihGun = DateTime.Now.AddDays(1).Day.ToString().PadLeft(2, '0'),
            };

            return(View(model));
        }
예제 #4
0
        List <AracViewModel> getAraclist(AracFiltreViewModel model)
        {
            if (model is null)
            {
                var res = (from arac in db.viewAracList
                           where arac.AracKiralamaDurumu == 0
                           select new AracViewModel
                {
                    Arac_ID = arac.Arac_ID,
                    Base64Resim = "data:image/png;base64,",
                    KM = (int)arac.AracGuncelKM,
                    MarkaModel = arac.AracMarka_Adi + " " + arac.AracModel_Adi,
                    VitesTuru = arac.VitesTipi,
                    YakitTuru = arac.AracYakitTuru_Adi,
                    Yil = arac.Arac_Yil
                }).Take(5).ToList();

                fillImages(res);
                return(res);
            }
            else
            {
                var newReservationStartDay = new DateTime(
                    year: Convert.ToInt32(model.alisTarihYil),
                    month: Convert.ToInt32(model.alisTarihAy),
                    day: Convert.ToInt32(model.alisTarihGun),
                    hour: Convert.ToInt32(model.alisSaat.Substring(0, 2)),
                    minute: Convert.ToInt32(model.alisSaat.Substring(3, 2)),
                    second: 0);

                var newReservationEndDay = new DateTime(
                    year: Convert.ToInt32(model.donusTarihYil),
                    month: Convert.ToInt32(model.donusTarihAy),
                    day: Convert.ToInt32(model.donusTarihGun),
                    hour: Convert.ToInt32(model.donusSaat.Substring(0, 2)),
                    minute: Convert.ToInt32(model.donusSaat.Substring(3, 2)),
                    second: 0);

                var unavailableList = new List <int>();
                var booked          = db.RezervasyonOnKayit.
                                      Where(x => x.RezervasyonOnKayit_Durum == (int)RezervasyonOnKayitDurum.KabulEdildi).
                                      GroupBy(x => x.RezervasyonOnKayit_AracID);
                foreach (var item in booked)
                {
                    var last = item.OrderByDescending(x => x.RezervasyonOnKayit_AlisSaati).FirstOrDefault();
                    if (last.RezervasyonOnKayit_TeslimTarihi.Date > newReservationStartDay.Date && last.RezervasyonOnKayit_TeslimSaati > newReservationStartDay.TimeOfDay ||
                        last.RezervasyonOnKayit_AlisTarihi.Date < newReservationEndDay.Date && last.RezervasyonOnKayit_AlisSaati < newReservationEndDay.TimeOfDay)
                    {
                        unavailableList.Add(last.RezervasyonOnKayit_AracID);
                    }
                }



                var res = (from arac in db.viewAracList
                           where arac.AracKiralamaDurumu == (int)AracDurumu.Bos &&
                           arac.Lokasyon_ID == model.alisLokasyon &&
                           !unavailableList.Contains(arac.Arac_ID)
                           select new AracViewModel
                {
                    Arac_ID = arac.Arac_ID,
                    Base64Resim = "data:image/png;base64,",
                    KM = (int)arac.AracGuncelKM,
                    MarkaModel = arac.AracMarka_Adi + " " + arac.AracModel_Adi,
                    VitesTuru = arac.VitesTipi,
                    YakitTuru = arac.AracYakitTuru_Adi,
                    Yil = arac.Arac_Yil
                }).Take(5).ToList();

                fillImages(res);
                return(res);
            }
        }