public static T Get <T>(string key, string folder = null) { try { var cacheMode = MixCommonHelper.GetWebEnumConfig <MixCacheMode>(WebConfiguration.MixCacheMode); switch (cacheMode) { case MixCacheMode.Database: return(GetFromDatabase <T>(key, folder)); case MixCacheMode.Binary: return(GetFromBinary <T>(key, folder)); case MixCacheMode.Base64: return(GetFromBase64 <T>(key, folder)); case MixCacheMode.Json: default: return(GetFromJson <T>(key, folder)); } } catch (Exception ex) { //TODO Handle Exception Console.WriteLine(ex); return(default(T)); } }
public static MixCacheDbContext GetCacheDbContext() { var dbProvider = MixCommonHelper.GetWebEnumConfig <MixDatabaseProvider>(WebConfiguration.MixCacheDbProvider); switch (dbProvider) { case MixDatabaseProvider.MSSQL: return(new MsSqlCacheDbContext()); case MixDatabaseProvider.MySQL: return(new MySqlCacheDbContext()); case MixDatabaseProvider.SQLITE: return(new SqliteCacheDbContext()); case MixDatabaseProvider.PostgreSQL: return(new PostgresCacheDbContext()); default: return(null); } }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { string cnn = MixCommonHelper.GetWebConfig <string>(WebConfiguration.MixCacheConnectionString); if (!string.IsNullOrEmpty(cnn)) { var provider = MixCommonHelper.GetWebEnumConfig <MixDatabaseProvider>(WebConfiguration.MixCacheDbProvider); switch (provider) { case MixDatabaseProvider.MSSQL: optionsBuilder.UseSqlServer(cnn); break; case MixDatabaseProvider.MySQL: optionsBuilder.UseMySql(cnn, ServerVersion.AutoDetect(cnn)); break; case MixDatabaseProvider.SQLITE: optionsBuilder.UseSqlite(cnn); break; case MixDatabaseProvider.PostgreSQL: optionsBuilder.UseNpgsql(cnn); break; default: break; } } else { optionsBuilder.UseSqlite($"Data Source=MixContent\\mix_cache.db"); } base.OnConfiguring(optionsBuilder); }