private void RestoreFromCache(IThermometerCache cache)
 {
     double.TryParse(GetKey(cache, CacheKeys.Average), out _average);
     int.TryParse(GetKey(cache, CacheKeys.Count), out _count);
     double.TryParse(GetKey(cache, CacheKeys.Max), out _max);
     double.TryParse(GetKey(cache, CacheKeys.Min), out _min);
     double.TryParse(GetKey(cache, CacheKeys.Sum), out _sum);
 }
 private void StoreInCache(IThermometerCache cache)
 {
     StoreKey(cache, CacheKeys.Average, _average.ToString());
     StoreKey(cache, CacheKeys.Count, _count.ToString());
     StoreKey(cache, CacheKeys.Max, _max.ToString());
     StoreKey(cache, CacheKeys.Min, _min.ToString());
     StoreKey(cache, CacheKeys.Sum, _sum.ToString());
 }
 public TemperatureCalculations(IThermometerCache cache)
 {
     if (cache != null)
     {
         _cache = cache;
         RestoreFromCache(cache);
     }
 }
        private string GetKey(IThermometerCache cache, string key)
        {
            string value = string.Empty;

            var result = cache.TryGetValue(key, out value);

            if (!result && key == CacheKeys.Min)
            {
                value = Convert.ToDouble(int.MaxValue).ToString();
            }

            return(value);
        }
 private void StoreKey(IThermometerCache cache, string key, string value)
 {
     // Save data in cache.
     cache.Set(key, value);
 }