private string BuildRequestUri() { var builder = new StringBuilder(); builder.Append("json?{0}={1}"); builder.AppendFormat("&key={0}", ApiKey?.Decrypt()); builder.AppendFormat("&language={0}", GetValidLanguage(LanguageCode)); if (!string.IsNullOrEmpty(RegionBias)) { builder.AppendFormat("®ion={0}", RegionBias); } if (BoundsBias != null) { builder.AppendFormat("&bounds={0},{1}|{2},{3}", BoundsBias.SouthWest?.Latitude, BoundsBias.SouthWest?.Longitude, BoundsBias.NorthEast?.Latitude, BoundsBias.NorthEast?.Longitude); } if (ComponentFilters != null) { builder.AppendFormat("&components={0}", string.Join("|", ComponentFilters.Select(x => x.ComponentFilter))); } return(builder.ToString()); }
private string BuildRequestUrl(string urlparams) { var unit = OptionalParameters?.MeasurementUnits; _weatherProviderUnits = string.IsNullOrEmpty(unit) ? WeatherProviderUnits.Metric : (WeatherProviderUnits)Enum.Parse(typeof(WeatherProviderUnits), unit, true); var urlbase = string.Format("{0}?appid={1}", _weatherDataType.ToValue(), ApiKey?.Decrypt()); var lang = GetValidLanguage(OptionalParameters?.LanguageCode); var result = string.Format("{0}&{1}&units={2}&lang={3}", urlbase, urlparams, _weatherProviderUnits.ToValue(), lang); return(result); }
protected override string BuildRequestUri(double latitude, double longitude) { Latitude = latitude; Longitude = longitude; var queryString = new StringBuilder(string.Format(FormatProvider, "forecast/{0}/{1:N4},{2:N4}", ApiKey?.Decrypt(), latitude, longitude)); if (OptionalParameters?.UnixTimeInSeconds != null) { queryString.AppendFormat(",{0}", OptionalParameters.UnixTimeInSeconds); } if (OptionalParameters != null) { queryString.Append("?"); } if (OptionalParameters?.DataBlocksToExclude != null && OptionalParameters.DataBlocksToExclude.Count > 0) { queryString.AppendFormat("&exclude={0}", string.Join(",", OptionalParameters.DataBlocksToExclude)); } if (OptionalParameters?.ExtendHourly != null && OptionalParameters.ExtendHourly.Value) { queryString.Append("&extend=hourly"); } var languageCode = GetValidLanguage(OptionalParameters?.LanguageCode); queryString.AppendFormat("&lang={0}", languageCode); var unit = OptionalParameters?.MeasurementUnits; _weatherProviderUnits = string.IsNullOrEmpty(unit) ? WeatherProviderUnits.Si : (WeatherProviderUnits)Enum.Parse(typeof(WeatherProviderUnits), unit, true); queryString.AppendFormat("&units={0}", _weatherProviderUnits.ToValue()); return(queryString.ToString()); }