Encapsulates arguments sent to the Timezone service.
예제 #1
0
 public TimeZoneExtended TimeZone(TimeZoneLookup lookup)
 {
     if (lookup != null)
     {
         lookup.UserName = _userName;
     }
     return(_client.TimeZone(lookup));
 }
예제 #2
0
        public void GeoNames_PostalCodeLookup_ShouldHaveDefaultValues()
        {
            var lookup = new TimeZoneLookup();

            lookup.ShouldNotBeNull();
            lookup.UserName.ShouldBeNull();
            lookup.Language.ShouldEqual("local");
            lookup.Latitude.ShouldEqual(0.0);
            lookup.Longitude.ShouldEqual(0.0);
            lookup.RadiusInKm.ShouldEqual(0.0);
        }
예제 #3
0
        /// <summary>
        /// Lookup a postal code by either Latitude/Longitude or Postalcode/Country/LocalCountry See
        /// <seealso cref="http://www.geonames.org/export/web-services.html#timezone">Official
        /// GeoNames postalCodeLookup Documentation</seealso> for more information.
        /// </summary>
        /// <param name="lookup">Arguments sent to the GeoNames service.</param>
        /// <returns>The extended timezone for the given latitude and longitude.</returns>
        public TimeZoneExtended TimeZone(TimeZoneLookup lookup)
        {
            if (lookup == null)
            {
                throw new ArgumentNullException("lookup");
            }

            var response = ChannelTimezone(lookup);

            return(response != null ? response : null);
        }
예제 #4
0
        public void GeoNames_PostalCodeLookup_ShouldHaveDefaultValues()
        {
            var lookup = new TimeZoneLookup();

            lookup.ShouldNotBeNull();
            lookup.UserName.ShouldBeNull();
            lookup.Language.ShouldEqual("local");
            lookup.Latitude.ShouldEqual(0.0);
            lookup.Longitude.ShouldEqual(0.0);
            lookup.RadiusInKm.ShouldEqual(0.0);
        }
예제 #5
0
 private TimeZoneExtended ChannelTimezone(TimeZoneLookup lookup, int retry = 0)
 {
     try
     {
         return(Channel.TimeZone(lookup.Latitude, lookup.Longitude, lookup.RadiusInKm,
                                 lookup.Language, lookup.UserName));
     }
     catch (WebException ex)
     {
         if (retry < RetryLimit && ex.Message.StartsWith(ClosedConnectionMessage, StringComparison.Ordinal))
         {
             return(ChannelTimezone(lookup, ++retry));
         }
         throw;
     }
 }
예제 #6
0
        public void GeoNames_PostalCodeLookup_ShouldBePublic()
        {
            var lookup = new TimeZoneLookup
            {
                UserName   = "******",
                Language   = "swahili",
                Latitude   = 1.0,
                Longitude  = 2.0,
                RadiusInKm = 3.0,
            };

            lookup.ShouldNotBeNull();
            lookup.UserName.ShouldNotBeNull();
            lookup.Language.ShouldNotBeNull();
            lookup.Latitude.ShouldEqual(1.0);
            lookup.Longitude.ShouldEqual(2.0);
            lookup.RadiusInKm.ShouldEqual(3.0);
        }
예제 #7
0
        public void GeoNames_PostalCodeLookup_ShouldBePublic()
        {
            var lookup = new TimeZoneLookup
            {
                UserName = "******",
                Language = "swahili",
                Latitude = 1.0,
                Longitude = 2.0,
                RadiusInKm = 3.0,
            };

            lookup.ShouldNotBeNull();
            lookup.UserName.ShouldNotBeNull();
            lookup.Language.ShouldNotBeNull();
            lookup.Latitude.ShouldEqual(1.0);
            lookup.Longitude.ShouldEqual(2.0);
            lookup.RadiusInKm.ShouldEqual(3.0);
        }
예제 #8
0
 public TimeZoneExtended TimeZone(TimeZoneLookup lookup)
 {
     if (lookup != null) lookup.UserName = _userName;
     return _client.TimeZone(lookup);
 }