Пример #1
0
        public IActionResult IndexPlaceInArea()
        {
            var  areaId = Int32.Parse(Request.Form["areaId"][0]);
            Area area   = db.Areas.FirstOrDefault(s => s.Id == areaId);

            var placetypeId = Int32.Parse(Request.Form["PlacetypeId"][0]);

            IQueryable <Place> places = db.Places.Include(s => s.PlaceType);

            if (areaId != 0 && placetypeId != 0)
            {
                places = db.Places.Include(s => s.PlaceType).Where(s => s.AreaId == areaId && s.PlaceTypeId == placetypeId);
            }
            else if (areaId == 0 && placetypeId != 0)
            {
                places = db.Places.Include(s => s.PlaceType).Where(s => s.PlaceTypeId == placetypeId);
            }
            else if (areaId != 0 && placetypeId == 0)
            {
                places = db.Places.Include(s => s.PlaceType).Where(s => s.AreaId == areaId);
            }


            ViewBag.Areas      = new SelectList(db.Areas, "Id", "Name");
            ViewBag.PlaceTypes = new SelectList(db.PlaceTypes, "Id", "Name");

            IndexPlaceInArea vm = new IndexPlaceInArea {
                Areas = db.Areas.ToList(), Places = places, AreaId = areaId, PlacetypeId = placetypeId
            };

            return(View(vm));
        }
Пример #2
0
        public IActionResult Find()
        {
            var areaId      = Int32.Parse(Request.Form["AreaId"][0]);
            var placetypeId = Int32.Parse(Request.Form["PlacetypeId"][0]);

            var openNow = "false";

            if (Request.Form["OpenNow"].Count > 0)
            {
                openNow = Request.Form["OpenNow"][0] == "true" || Request.Form["OpenNow"][0] == "on" ? "true" : "false";
            }

            var startTime = Request.Form["StartTime"][0].ToString() != "" ? Convert.ToDateTime(Request.Form["StartTime"][0]).TimeOfDay : (TimeSpan?)null;
            var EndTime   = Request.Form["EndTime"][0] != "" ? Convert.ToDateTime(Request.Form["EndTime"][0]).TimeOfDay : (TimeSpan?)null;

            IQueryable <Place> places = db.Places.Include(s => s.PlaceType);

            if (areaId != 0 && placetypeId != 0)
            {
                places = db.Places.Include(s => s.PlaceType).Where(s => s.AreaId == areaId && s.PlaceTypeId == placetypeId);
            }
            else if (areaId == 0 && placetypeId != 0)
            {
                places = db.Places.Include(s => s.PlaceType).Where(s => s.PlaceTypeId == placetypeId);
            }
            else if (areaId != 0 && placetypeId == 0)
            {
                places = db.Places.Include(s => s.PlaceType).Where(s => s.AreaId == areaId);
            }

            if (openNow == "true")
            {
                var currentTime = DateTime.Now.TimeOfDay;
                var open_places = from p in places
                                  where currentTime >= p.StartWork.TimeOfDay && currentTime < p.EndWork.TimeOfDay
                                  select p;
                places = open_places;
            }
            else
            {
                var open_places = from p in places
                                  where startTime >= p.StartWork.TimeOfDay && EndTime < p.EndWork.TimeOfDay
                                  select p;
                places = open_places;
            }

            IndexPlaceInArea vm = new IndexPlaceInArea {
                Areas = db.Areas.ToList(), Places = places, AreaId = areaId, PlacetypeId = placetypeId
            };

            ViewBag.Areas      = new SelectList(db.Areas, "Id", "Name");
            ViewBag.PlaceTypes = new SelectList(db.PlaceTypes, "Id", "Name");

            return(View("IndexPlaceInArea", vm));
        }