Exemple #1
0
    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);
    }
Exemple #2
0
 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);
         }
     }
 }