Beispiel #1
0
        // 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));
        }
Beispiel #2
0
 // 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);
 }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        // 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);
            }
        }