Exemple #1
0
        public INormalizedWeatherData GetCurrentConditions()
        {
            var Ip = IpFunctions.GetUserIP();

            if (Ip == null)
            {
                Logger.Critical("Unable to obtain IP targetable IP address. If running locally, set FallbackGeolocationIP in AppSettings to a geo-targetable IP address.");
                return(null);
            }

            var NetAddress = IpFunctions.GetNetworkAddress(Ip, IPAddress.Parse("255.255.255.0"));

            // cache based on subnet to reduce goe-based calls for highly similar IP addresses
            // TODO: 30minute cache - consider making a config value?
            return(CacheAside.GetOrAddAbsoluteCache(NetAddress.ToString(), () => GetWeatherData(), DateTime.Now.AddMinutes(30)));
        }
 public CloudDesignPatternController(IAmbassador ambassador, CacheAside <string, IEnumerable <WeatherForecast> > cacheAside)
 {
     _ambassador = ambassador;
     _cache      = cacheAside;
 }