Пример #1
0
        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);
        }
Пример #2
0
        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");
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        public static ITemperatureStrategy GetTemperatureStrategy(TemperatureTypeEnum temperatureType)
        {
            switch (temperatureType)
            {
            case TemperatureTypeEnum.Kelvin:
            {
                return(new KelvinStrategy());
            }

            case TemperatureTypeEnum.Fahrenheit:
            {
                return(new FahrenheitStrategy());
            }

            default:
            {
                return(new CelsiusStrategy());
            }
            }
        }
Пример #5
0
        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();
        }
Пример #6
0
        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;
 }