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)); }
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)); }