private TemperatureTypeEnum GetTemperatureTypeFromSettings() { TemperatureTypeEnum temperaturetype = TemperatureTypeEnum.Celsius; switch (Properties.Settings.Default.userTemperatureTypePreference) { case 0: { temperaturetype = TemperatureTypeEnum.Celsius; break; } case 1: { temperaturetype = TemperatureTypeEnum.Kelvin; break; } case 2: { temperaturetype = TemperatureTypeEnum.Fahrenheit; break; } } return(temperaturetype); }
private void CheckParametersValid(int zipcode, DateTime date, TemperatureTypeEnum temperatureType, ForecastTypeEnum forecastType) { //ToDo Validation for Enums var validation = new UiValidation(); if (validation.IsZipcode(zipcode) && validation.IsStringADate(date.ToString())) { } else { throw new ArgumentException("Invalid Arguments"); } }
public static ITemperatureConverter GetTemperatureDetails(TemperatureTypeEnum tempType) { ITemperatureConverter tempDetails = null; if (tempType == TemperatureTypeEnum.Celsius) { tempDetails = new FromCelsius(); } else if (tempType == TemperatureTypeEnum.Fahrenheit) { tempDetails = new FromFahrenheit(); } else if (tempType == TemperatureTypeEnum.Kelvin) { tempDetails = new FromKelvin(); } return(tempDetails); }
public static ITemperatureStrategy GetTemperatureStrategy(TemperatureTypeEnum temperatureType) { switch (temperatureType) { case TemperatureTypeEnum.Kelvin: { return(new KelvinStrategy()); } case TemperatureTypeEnum.Fahrenheit: { return(new FahrenheitStrategy()); } default: { return(new CelsiusStrategy()); } } }
private void searchbutton_Click(object sender, EventArgs e) { var type = GetForecastType(); _userForecastPreference = (int)type; TemperatureTypeEnum temperatureType = GetTemperatureType(); _userTemperaturePreference = (int)temperatureType; WeatherForecastDomainService weatherService = new WeatherForecastDomainService(); var inputValidator = new UiValidation(); if (inputValidator.IsInteger(userinputfield.Text)) { //ToDo: Give Correct Date as Parameter _userZipCode = inputValidator.ConvertStringToInt(userinputfield.Text); var result = weatherService .GetForecast( _userZipCode, DateTime.Now, temperatureType, type); outputfield.Text = string.Join(Environment.NewLine, result); } string outputFavourites = string.Empty; foreach (var zipcode in _zipcodeList) { var resultFavourites = weatherService .GetForecast( zipcode, DateTime.Now, temperatureType, type); outputFavourites += string.Join(Environment.NewLine, resultFavourites); } favouriteOutput.Text = outputFavourites; SaveSettings(); }
public List <string> GetForecast( int zipcode, DateTime date, TemperatureTypeEnum temperatureType, ForecastTypeEnum forecastType) { try { CheckParametersValid(zipcode, date, temperatureType, forecastType); } catch (ArgumentException ae) { //ToDo Fehlermeldung an UI } // = "Orchestrierung", ruft Methoden auf ohne zu wissen, woher bspw. Parameter herkommen // Funktionales Programmieren _temperatureStrategy = TemperatureStrategyFactory.GetTemperatureStrategy(temperatureType); // Exercise: New Provider (e.g. Random) and change next Line to see if it still work IWeatherForecastProvider weatherForecastProvider = new OpenWeatherAPI(HttpClientFactory.CreateClient(), "a1fcc507923163ff1bae113a80d8f82a"); WeatherForecast weatherForecast = new WeatherForecast(weatherForecastProvider); _forecastStrategy = ForecastStrategyFactory.GetForecastStrategy(forecastType, weatherForecast); List <string> result = new List <string>(); try { result = _forecastStrategy.GetForecast(zipcode, _temperatureStrategy, date); } catch (ZipNotFoundException ex) { result.Add(ex.Message); } catch (Exception ex) { result.Add($"Exception: {ex.Message}"); } return(result); }
public Temperature() { TemperatureType = TemperatureTypeEnum.Fahrenheit; }