internal static List <string> FormatForecastResponse(ForecastWeatherModel.Forecast forecast, CurrentWeatherModel.Location location, bool shortWeather = false) { var b = IrcConstants.IrcBold; var n = IrcConstants.IrcNormal; var c = IrcConstants.IrcColor; var colours = new Colours(); List <string> response = new List <string>(); foreach (ForecastWeatherModel.ForecastDay day in forecast.ForecastDays) { if (shortWeather) { response.Add($"Forecast for {day.Date.ToShortDateString()}: {b}Avg:{n} {FormatTemperatureCelsius(day.Day.AvgTempCelsius)}°C; " + $"{b}Min:{n} {FormatTemperatureCelsius(day.Day.MinTempCelsius)}°C; " + $"{b}Max:{n} {FormatTemperatureCelsius(day.Day.MaxTempCelsius)}°C; " + //$"{b}Cond:{n} {day.Day.Condition.Text}; " + $"{b}Precip:{n} {day.Day.TotalPrecipMm} mm; " + $"{b}Avg Humidity:{n} {day.Day.AvgHumidity}%; " + $"{b}Astro:{n} Sunrise at {c}{colours.Blue}{day.Astro.Sunrise}{n}, sunset at {c}{colours.Orange}{day.Astro.Sunset}{n}"); continue; } response.Add($"Forecast for {day.Date.ToShortDateString()}: {b}Avg:{n} {FormatTemperatureCelsius(day.Day.AvgTempCelsius)}°C / {FormatTemperatureFahrenheit(day.Day.AvgTempFahrenheit)}°F; " + $"{b}Min:{n} {FormatTemperatureCelsius(day.Day.MinTempCelsius)}°C / {FormatTemperatureFahrenheit(day.Day.MinTempFahrenheit)}°F; " + $"{b}Max:{n} {FormatTemperatureCelsius(day.Day.MaxTempCelsius)}°C / {FormatTemperatureFahrenheit(day.Day.MaxTempFahrenheit)}°F; " + //$"{b}Condition:{n} {day.Day.Condition.Text}; " + $"{b}Wind (Max):{n} {day.Day.MaxWindKph} Kph / {day.Day.MaxWindMph} Mph; " + $"{b}Precipitation:{n} {day.Day.TotalPrecipMm} mm / {day.Day.TotalPrecipIn} in; " + $"{b}Avg Visibility:{n} {day.Day.AvgVisibilityKm} km / {day.Day.AvgVisibilityMiles} mi; " + $"{b}Avg Humidity:{n} {day.Day.AvgHumidity}%; " + $"{b}Astro:{n} Sunrise at {c}{colours.Blue}{day.Astro.Sunrise}{n}, sunset at {c}{colours.Orange}{day.Astro.Sunset}{n}"); } return(response); }
internal static string FormatWeatherResponse(CurrentWeatherModel.CurrentCondition currentWeather, CurrentWeatherModel.Location location, bool shortWeather = false) { var b = IrcConstants.IrcBold; var n = IrcConstants.IrcNormal; // Gets a bit repetitive (also I'm illiterate) if (shortWeather) { return ($"{b}{location.Name}, {location.Country}{n}: " + $"{b}Temp:{n} {FormatTemperatureCelsius(currentWeather.Temperature)}°C " + $"(feels like {FormatTemperatureCelsius(currentWeather.FeelsLike)}°C); " + $"{b}Cond:{n} {currentWeather.WeatherDescriptions[0]}; " + $"{b}Precip:{n} {currentWeather.Precipitation} mm; " + $"{b}Humidity:{n} {currentWeather.Humidity}%; " + $"at {currentWeather.ObservationTime} UTC"); } return ($"Weather at {b}{location.Name}, {location.Region}, {location.Country}{n}: " + $"{b}Temp:{n} {FormatTemperatureCelsius(currentWeather.Temperature)}°C / {FormatTemperatureFahrenheit(ConversionHelpers.CelsiusToFahrenheit(currentWeather.Temperature))}°F " + $"(feels like {FormatTemperatureCelsius(currentWeather.FeelsLike)}°C / {FormatTemperatureFahrenheit(ConversionHelpers.CelsiusToFahrenheit(currentWeather.FeelsLike))}°F); " + $"{b}Condition:{n} {currentWeather.WeatherDescriptions[0]}; " + $"{b}Wind:{n} {currentWeather.WindSpeed} Kph / {ConversionHelpers.KilometresToMiles(currentWeather.WindSpeed)} Mph {currentWeather.WindDirection}; " + $"{b}Precipitation:{n} {currentWeather.Precipitation} mm / {ConversionHelpers.MmToInch(currentWeather.Precipitation)} in; " + $"{b}Humidity:{n} {currentWeather.Humidity}%; " + $"{b}Pressure:{n} {currentWeather.Pressure} mbars; " + $"{b}Visibility:{n} {currentWeather.Visibility} km / {ConversionHelpers.KilometresToMiles( currentWeather.Visibility)} mi; " + $"Observed at {currentWeather.ObservationTime} UTC"); }