// Sends proper data to DataAccess and returns a model with weatherdata public async Task <RootObject> GetWeather(ShowWeatherViewModel model) { WeatherSearch weatherSearch = CreateSearchModel(model); string uri = SetupUri(weatherSearch); return(await dataAccess.GetWeather(uri)); }
// Creates a optimized model to make a Api-request private WeatherSearch CreateSearchModel(ShowWeatherViewModel model) { if (model != null) { return(new WeatherSearch() { City = model.City?.Trim() ?? "", CountryCode = model.CountryCode, Units = model.Units?.Trim() ?? "" }); } return(null); }
public async Task <IActionResult> Index(ShowWeatherViewModel model) { // If the model is valid it sends data to business logic and awaits for response if (ModelState.IsValid) { var result = await businessLogic.GetWeather(model); var viewModel = businessLogic.CreateViewModel(result); // If The request faild, displat error message if (viewModel == null) { TempData["message"] = result.message; } else { return(View(viewModel)); } } return(View(model)); }
// Creates the viewmodel for startpage public ShowWeatherViewModel CreateViewModel(RootObject result) { // Api-call is successful if (result.cod == 200) { ShowWeatherViewModel viewModel = new ShowWeatherViewModel(); viewModel.RootObject = result; viewModel.RequestIsSuccessful = true; viewModel.City = result.name; // Country code ska stå med två bokstäver i sökningen men med hela staden i tabellen viewModel.CountryCode = result.sys?.country ?? ""; viewModel.Sunrise = ConvertNumberToAccuretTime(result.sys?.sunrise ?? 0); viewModel.Sunset = ConvertNumberToAccuretTime(result.sys?.sunset ?? 0); viewModel.WeatherIcon = $"http://openweathermap.org/img/w/{result.weather?[0].icon}.png" ?? ""; return(viewModel); } else { return(null); } }