public IEnumerable <string> Get() { Park park = new Park(); using (NationalParkContext ctx = new NationalParkContext()) { park = ctx.Park.Where(p => p.Park1 == "Hawaii Volcanoes National Park").FirstOrDefault(); } return(new string[] { park.Park1, park.Camping }); }
public List <Park> Post([FromBody] Form form) { var reg = form.region; //narrow list of parks by region List <string> parksToUse = new List <string>(); using (NationalParkContext ctx = new NationalParkContext()) { var parksInRegion = ctx.Region.Where(r => r.Region1 == reg).ToList(); foreach (var p in parksInRegion) { parksToUse.Add(p.ParkName); } } //dog friendly, lodging and campgrounds - in the parks table List <string> parkConstraints = new List <string>(); using (NationalParkContext ctx = new NationalParkContext()) { List <Park> parks = new List <Park>(); var camping = "yes"; var lodging = "yes"; var dogs = "yes"; if (form.campgrounds && form.lodging && form.park_dog_friendly) { parks = ctx.Park.Where(r => ((r.DogFriendly == dogs) || (r.DogFriendly == "restricted areas")) && (r.Lodging == lodging) && (r.Camping == camping)).ToList(); } else if (form.campgrounds && form.lodging) { parks = ctx.Park.Where(r => (r.Lodging == lodging) && (r.Camping == camping)).ToList(); } else if (form.campgrounds && form.park_dog_friendly) { parks = ctx.Park.Where(r => ((r.DogFriendly == dogs) || (r.DogFriendly == "restricted areas")) && (r.Camping == camping)).ToList(); } else if (form.lodging && form.park_dog_friendly) { parks = ctx.Park.Where(r => ((r.DogFriendly == dogs) || (r.DogFriendly == "restricted areas")) && (r.Lodging == lodging)).ToList(); } else if (form.campgrounds) { parks = ctx.Park.Where(r => (r.Camping == camping)).ToList(); } else if (form.lodging) { parks = ctx.Park.Where(r => (r.Lodging == lodging)).ToList(); } else if (form.park_dog_friendly) { parks = ctx.Park.Where(r => ((r.DogFriendly == dogs) || (r.DogFriendly == "restricted areas"))).ToList(); } else { parks = ctx.Park.Where(r => ((r.DogFriendly == dogs) || (r.DogFriendly == "restricted areas" || r.DogFriendly == "no")) && (r.Lodging == lodging || r.Lodging == "no") && (r.Camping == camping || r.Camping == "no")).ToList(); } foreach (var p in parks) { parkConstraints.Add(p.Park1); } } var regionAndContraints = parksToUse.Intersect(parkConstraints); List <string> landscapeParks = new List <string>(); ///narrow list of parks by landscape using (NationalParkContext ctx = new NationalParkContext()) { foreach (var l in form.landscapes) { var parksPerLandscape = ctx.Landscape.Where(r => r.Landscape1 == l).ToList(); foreach (var lc in parksPerLandscape) { landscapeParks.Add(lc.ParkName); } } } var regionAndLandscapesAndContraints = regionAndContraints.Intersect(landscapeParks); List <string> parksByPlant = new List <string>(); //narrow list of parks by plants using (NationalParkContext ctx = new NationalParkContext()) { foreach (var p in form.plants) { var parksPerPlantTag = ctx.Plant.Where(r => r.Tag == p).ToList(); foreach (var pt in parksPerPlantTag) { parksByPlant.Add(pt.ParkName); } } } var regionAndLandscapesAndContraintsAndPlants = regionAndLandscapesAndContraints.Intersect(parksByPlant); //narrow list of parks by wildlife List <string> parksByWildlife = new List <string>(); //narrow list of parks by plants using (NationalParkContext ctx = new NationalParkContext()) { foreach (var w in form.wildlife) { var parksPerWildlifeTag = ctx.Wildlife.Where(r => r.Tag == w).ToList(); foreach (var pt in parksPerWildlifeTag) { parksByWildlife.Add(pt.ParkName); } } } var regionAndLandscapesAndContraintsAndPlantsAndWildlife = regionAndLandscapesAndContraintsAndPlants.Intersect(parksByWildlife); List <Park> parkList = new List <Park>(); using (NationalParkContext ctx = new NationalParkContext()) { foreach (var p in regionAndLandscapesAndContraintsAndPlantsAndWildlife) { var parkInfo = ctx.Park.Where(x => x.Park1 == p).FirstOrDefault(); parkList.Add(parkInfo); } } return(parkList); }