public bool Expired(ResponseObject responseObject, TimeSpan age, DateTime now)
 {
     return age >= TimeSpan.FromDays(7) ||
         (now.DayOfWeek > DayOfWeek &&
             GetLastDayOfWeekTime(now) > responseObject.LastUpdated) ||
             (DayOfWeek == now.DayOfWeek && age > TimeSpan.FromDays(1));
 }
 public bool Expired(ResponseObject responseObject, int currentBuild)
 {
     switch (Condition)
     {
         case BuildVersionCondition.Changes:
             return responseObject.LastUpdateBuild != currentBuild;
         default:
             return true;
     }
     
 }
 /// <summary>
 /// Add an object to the response cache
 /// </summary>
 /// <param name="url">full url used to obtain the response</param>
 /// <param name="response">the response to cache</param>
 public void Add(string url, ResponseObject response)
 {
     response.Url = url;
     string hash = GetHash(url);
     lock (_objectLock)
     {
         if (cache.ContainsKey(hash))
         {
             cache.Remove(hash);
         }
         response.Url = url;
         GwApi.Logger.Info("Adding {0} to Cache", response.GetType());
         cache.Add(hash, response);
     }
 }
 public bool Expired(ResponseObject responseObject)
 {
     return Expired(responseObject.Age);
 }
 public bool Expired(ResponseObject responseObject)
 {
     return Expired(responseObject, GwApi.Build);
 }
 public bool Expired(ResponseObject responseObject)
 {
     return Expired(responseObject, responseObject.Age, DateTime.Now);
 }
 public bool Expired(ResponseObject responseObject)
 {
     return ExpiredValue;
 }
 /// <summary>
 /// Add an object to the response cache
 /// </summary>
 /// <param name="response">the response to cache</param>
 public void Add(ResponseObject response)
 {
     Add(response.Url, response);
 }
 public Task AddAsync(ResponseObject response)
 {
     return AddAsync(response.Url, response);
 }
 public Task AddAsync(string key, ResponseObject response)
 {
     return Task.Run(() =>
         {
             response.Url = key;
             string hash = GetHash(key);
             lock (_objectLock)
             {
                 if (cache.ContainsKey(hash))
                 {
                     cache.Remove(hash);
                 }
                 response.Url = key;
                 GwApi.Logger.Info("Adding {0} to Cache", response.GetType());
                 cache.Add(hash, response);
             }
         });
 }