public virtual List <T> GetData <T, U>(Expression <Func <T, bool> > expression) where T : class, new() where U : IQuerySurface { string newCacheKey = CacheKey; if (expression != null) { newCacheKey = string.Format("{0}:{1}", CacheKey, expression.ToString()); } List <T> data = CacheHelper != null && CacheExpiry > 0 ? CacheHelper.Get(newCacheKey) as List <T> : null; if (data == null) { SubSonicRepository <T> repository = GetRepository <T, U>(); if (expression != null) { data = repository.Find(expression).ToList(); } else { data = repository.GetAll().ToList(); } if (CacheHelper != null) { CacheHelper.Add(newCacheKey, data, DateTime.Now.AddSeconds(CacheExpiry)); } } return(data); }
private static void ClearOfflineProviders() { SetProvider(); Utility.WriteTrace("Checking for offline providers..."); List<DataProvider> list = new List<DataProvider>(); foreach (DataProvider provider in DataService.Providers) { try { SubSonicRepository r = new SubSonicRepository(provider); if (!r.IsOnline()) { list.Add(provider); } } catch (Exception ex) { Utility.WriteTrace(string.Format("Error message {0}", ex)); list.Add(provider); } } if (list.Count > 0) { Utility.WriteTrace("Clearing offline providers..."); foreach (DataProvider p in list) { Utility.WriteTrace(string.Format("Provider {0} is offline. No files will be generated.", p.Name)); DataService.Providers.Remove(p.Name); } } }