示例#1
0
        public static string ToValue(this WeatherProviderUnits self)
        {
            switch (self)
            {
            case WeatherProviderUnits.Si:
                return("c");

            case WeatherProviderUnits.Imperial:
                return("f");

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        private string BuildRequestUrl(string urlparams)
        {
            var unit = OptionalParameters?.MeasurementUnits;

            _weatherProviderUnits = string.IsNullOrEmpty(unit)
                ? WeatherProviderUnits.Imperial // Right presure unit
                : (WeatherProviderUnits)Enum.Parse(typeof(WeatherProviderUnits), unit, true);
            var result =
                string.Format(
                    "yql?q=select * from weather.forecast where woeid in (select woeid from geo.places(1) where {0}) and u='{1}'&format=json",
                    urlparams, _weatherProviderUnits.ToValue());

            return(result);
        }
        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);
        }
示例#4
0
        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());
        }
        /// <summary>
        /// Gives the Forecast Service-friendly name for
        /// this parameter.
        /// </summary>
        /// <param name="self">
        /// The parameter to convert.
        /// </param>
        /// <returns>
        /// The service-friendly <see cref="string"/>.
        /// </returns>
        /// <exception cref="ArgumentOutOfRangeException">
        /// Thrown when the parameter does not have a corresponding
        /// friendly name.
        /// </exception>
        public static string ToValue(this WeatherProviderUnits self)
        {
            switch (self)
            {
            case WeatherProviderUnits.Us:
                return("us");

            case WeatherProviderUnits.Si:
                return("si");

            //case WeatherProviderUnits.Ca:
            //    return "ca";
            //case WeatherProviderUnits.Uk:
            //    return "uk";
            //case WeatherProviderUnits.Uk2:
            //    return "uk2";
            //case WeatherProviderUnits.Auto:
            //    return "auto";
            default:
                throw new ArgumentOutOfRangeException();
            }
        }