public ImportRestaurant GetRestaurantsFromApi(string serviceBaseUrl, RestaurantImportSettings settings) { var page = 1; var results = new ImportRestaurant { TotalResults = 51 }; while (results.TotalResults > page * 50) { var apiUrl = GenerateRestaurantApiUrl(serviceBaseUrl, settings.PublisherKey, settings.Latitude, settings.Longitude, settings.Radius, page); var objRequest = WebRequest.Create(apiUrl); var objResponse = objRequest.GetResponse(); string strResult; using (var sr = new StreamReader(objResponse.GetResponseStream())) { strResult = sr.ReadToEnd(); } var data = System.Web.Helpers.Json.Decode(strResult); results.TotalResults = data.results.total_hits; results.FirstHit = data.results.first_hit; results.LastHit = data.results.last_hit; results.Page = data.results.page; foreach (var item in data.results.locations) { if (results.Restaurants.ToList().Find(f => f.RestaurantName == item.name) == null) { results.Restaurants.Add(new RestaurantToImport { RestaurantName = item.name, Selected = false, PreferredDayOfWeek = null }); } } page++; } results.Restaurants = results.Restaurants.OrderBy(f => f.RestaurantName).ToList(); results.Restaurants = CheckAlreadyImported(results.Restaurants); return results; }
public ActionResult ImportSettings(RestaurantImportSettings model) { if (ModelState.IsValid) { var results = _importRestaurantLogic.GetRestaurantsFromApi(ConfigurationManager.AppSettings.Get("RestaurantProviderURL"), model); Session.Add(SessionName, results); GenerateDropDownLists(); return View("DisplayRestaurants", results); } return View(model); }
private static RestaurantImportSettings GetDefaultImportSetting() { var defaultSettings = new RestaurantImportSettings { PublisherKey = ConfigurationManager.AppSettings["RestaurantProviderPublisherKey"], Latitude = ConfigurationManager.AppSettings["RestaurantProviderLatitude"], Longitude = ConfigurationManager.AppSettings["RestaurantProviderLongitude"], Radius = ConfigurationManager.AppSettings["RestaurantProviderRadius"] }; return defaultSettings; }
public ActionResult ImportSettings() { var defaults = GetDefaultImportSetting(); var model = new RestaurantImportSettings { UseDefaults = true, PublisherKey = defaults.PublisherKey, Latitude = defaults.Latitude, Longitude = defaults.Longitude, Radius = defaults.Radius }; ViewBag.DefaultSettings = defaults; return View(model); }