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; }