public Presenter(Model model) { this.model = model; this.model.ModelUpdated += ModelUpdateHandler; formatter = EnglishFormat; }
/// <summary> /// Handles command represented as string /// </summary> public void HandleCommand(string command) { command = command.Trim().ToLower(); if (command.StartsWith("setunits")) { var unit = Regex.Match(command, "\\((.*?)\\)").Groups[1].Value; if (new ArrayList { "celsius", "c", "cels" }.Contains(unit)) { model.WeatherProviderDelegate = x => WeatherProvider.GetWeatherForCity(x, TemperatureUnit.C); } else if (new ArrayList { "fahrenheit", "f" }.Contains(unit)) { model.WeatherProviderDelegate = x => WeatherProvider.GetWeatherForCity(x, TemperatureUnit.F); } } else if (command.StartsWith("setlanguage")) { var value = Regex.Match(command, "\\((.*?)\\)").Groups[1].Value; if (new ArrayList { "cs", "czech", "cze" }.Contains(value)) { formatter = CzechFormat; } else if (new ArrayList { "en", "english", "eng" }.Contains(value)) { formatter = EnglishFormat; } } else if (command == "x") { Environment.Exit(0); } else { model.City = command; } }