diff --git a/RMuseum/RMuseum.xml b/RMuseum/RMuseum.xml
index 4a90691a..401bf2f6 100644
--- a/RMuseum/RMuseum.xml
+++ b/RMuseum/RMuseum.xml
@@ -10848,12 +10848,17 @@
+
+
+ aggressive cache
+
+
Database Context
-
+
Configuration
diff --git a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-MySqlImports.cs b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-MySqlImports.cs
index 338c9315..e705a7e5 100644
--- a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-MySqlImports.cs
+++ b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-MySqlImports.cs
@@ -48,13 +48,13 @@ namespace RMuseum.Services.Implementation
var job = (await jobProgressServiceEF.NewJob("GanjoorService:ImportFromMySql", $"{stepCount} - start")).Result;
- if(string.IsNullOrEmpty(_configuration.GetSection("AudioMySqlServer")["ReportedCommentsDatabase"]))
+ if(string.IsNullOrEmpty(Configuration.GetSection("AudioMySqlServer")["ReportedCommentsDatabase"]))
{
await jobProgressServiceEF.UpdateJob(job.Id, job.Progress, "", false, "ReportedCommentsDatabase is not set");
return;
}
- if (string.IsNullOrEmpty(_configuration.GetSection("AudioMySqlServer")["PoetImagesImportPath"]))
+ if (string.IsNullOrEmpty(Configuration.GetSection("AudioMySqlServer")["PoetImagesImportPath"]))
{
await jobProgressServiceEF.UpdateJob(job.Id, job.Progress, "", false, "PoetImagesImportPath is not set");
return;
@@ -67,7 +67,7 @@ namespace RMuseum.Services.Implementation
stepCount++;
- MusicCatalogueService catalogueService = new MusicCatalogueService(_configuration, context);
+ MusicCatalogueService catalogueService = new MusicCatalogueService(Configuration, context);
RServiceResult musicCatalogueRes = await catalogueService.ImportFromMySql($"{stepCount} MusicCatalogueImportFromMySql", jobProgressServiceEF, job);
@@ -154,7 +154,7 @@ namespace RMuseum.Services.Implementation
using (MySqlConnection connection = new MySqlConnection
(
- $"server={_configuration.GetSection("AudioMySqlServer")["Server"]};uid={_configuration.GetSection("AudioMySqlServer")["Username"]};pwd={_configuration.GetSection("AudioMySqlServer")["Password"]};database={_configuration.GetSection("AudioMySqlServer")["Database"]};charset=utf8;convert zero datetime=True"
+ $"server={Configuration.GetSection("AudioMySqlServer")["Server"]};uid={Configuration.GetSection("AudioMySqlServer")["Username"]};pwd={Configuration.GetSection("AudioMySqlServer")["Password"]};database={Configuration.GetSection("AudioMySqlServer")["Database"]};charset=utf8;convert zero datetime=True"
))
{
connection.Open();
@@ -360,7 +360,7 @@ namespace RMuseum.Services.Implementation
using (MySqlConnection connection = new MySqlConnection
(
- $"server={_configuration.GetSection("AudioMySqlServer")["Server"]};uid={_configuration.GetSection("AudioMySqlServer")["Username"]};pwd={_configuration.GetSection("AudioMySqlServer")["Password"]};database={_configuration.GetSection("AudioMySqlServer")["Database"]};charset=utf8;convert zero datetime=True"
+ $"server={Configuration.GetSection("AudioMySqlServer")["Server"]};uid={Configuration.GetSection("AudioMySqlServer")["Username"]};pwd={Configuration.GetSection("AudioMySqlServer")["Password"]};database={Configuration.GetSection("AudioMySqlServer")["Database"]};charset=utf8;convert zero datetime=True"
))
{
connection.Open();
@@ -464,7 +464,7 @@ namespace RMuseum.Services.Implementation
using (MySqlConnection connection = new MySqlConnection
(
- $"server={_configuration.GetSection("AudioMySqlServer")["Server"]};uid={_configuration.GetSection("AudioMySqlServer")["Username"]};pwd={_configuration.GetSection("AudioMySqlServer")["Password"]};database={_configuration.GetSection("AudioMySqlServer")["Database"]};charset=utf8;convert zero datetime=True"
+ $"server={Configuration.GetSection("AudioMySqlServer")["Server"]};uid={Configuration.GetSection("AudioMySqlServer")["Username"]};pwd={Configuration.GetSection("AudioMySqlServer")["Password"]};database={Configuration.GetSection("AudioMySqlServer")["Database"]};charset=utf8;convert zero datetime=True"
))
{
connection.Open();
@@ -520,9 +520,9 @@ namespace RMuseum.Services.Implementation
string connectionString =
approved ?
- $"server={_configuration.GetSection("AudioMySqlServer")["Server"]};uid={_configuration.GetSection("AudioMySqlServer")["Username"]};pwd={_configuration.GetSection("AudioMySqlServer")["Password"]};database={_configuration.GetSection("AudioMySqlServer")["Database"]};charset=utf8;convert zero datetime=True"
+ $"server={Configuration.GetSection("AudioMySqlServer")["Server"]};uid={Configuration.GetSection("AudioMySqlServer")["Username"]};pwd={Configuration.GetSection("AudioMySqlServer")["Password"]};database={Configuration.GetSection("AudioMySqlServer")["Database"]};charset=utf8;convert zero datetime=True"
:
- $"server={_configuration.GetSection("AudioMySqlServer")["Server"]};uid={_configuration.GetSection("AudioMySqlServer")["SongsUsername"]};pwd={_configuration.GetSection("AudioMySqlServer")["SongsPassword"]};database={_configuration.GetSection("AudioMySqlServer")["SongsDatabase"]};charset=utf8;convert zero datetime=True";
+ $"server={Configuration.GetSection("AudioMySqlServer")["Server"]};uid={Configuration.GetSection("AudioMySqlServer")["SongsUsername"]};pwd={Configuration.GetSection("AudioMySqlServer")["SongsPassword"]};database={Configuration.GetSection("AudioMySqlServer")["SongsDatabase"]};charset=utf8;convert zero datetime=True";
using (MySqlConnection connection = new MySqlConnection
(
@@ -621,7 +621,7 @@ namespace RMuseum.Services.Implementation
{
List list = new List();
string connectionString =
- $"server={_configuration.GetSection("AudioMySqlServer")["Server"]};uid={_configuration.GetSection("AudioMySqlServer")["ReportedCommentsUsername"]};pwd={_configuration.GetSection("AudioMySqlServer")["ReportedCommentsPassword"]};database={_configuration.GetSection("AudioMySqlServer")["ReportedCommentsDatabase"]};charset=utf8;convert zero datetime=True";
+ $"server={Configuration.GetSection("AudioMySqlServer")["Server"]};uid={Configuration.GetSection("AudioMySqlServer")["ReportedCommentsUsername"]};pwd={Configuration.GetSection("AudioMySqlServer")["ReportedCommentsPassword"]};database={Configuration.GetSection("AudioMySqlServer")["ReportedCommentsDatabase"]};charset=utf8;convert zero datetime=True";
using (MySqlConnection connection = new MySqlConnection
(
@@ -665,7 +665,7 @@ namespace RMuseum.Services.Implementation
job = (await jobProgressServiceEF.UpdateJob(job.Id, 0, $"{jobName} - pre mysql data fetch")).Result;
string connectionString =
- $"server={_configuration.GetSection("AudioMySqlServer")["Server"]};uid={_configuration.GetSection("AudioMySqlServer")["Username"]};pwd={_configuration.GetSection("AudioMySqlServer")["Password"]};database={_configuration.GetSection("AudioMySqlServer")["Database"]};charset=utf8;convert zero datetime=True";
+ $"server={Configuration.GetSection("AudioMySqlServer")["Server"]};uid={Configuration.GetSection("AudioMySqlServer")["Username"]};pwd={Configuration.GetSection("AudioMySqlServer")["Password"]};database={Configuration.GetSection("AudioMySqlServer")["Database"]};charset=utf8;convert zero datetime=True";
using (MySqlConnection connection = new MySqlConnection
(
@@ -990,7 +990,7 @@ namespace RMuseum.Services.Implementation
job = (await jobProgressServiceEF.UpdateJob(job.Id, 0, $"{jobName} - pre mysql data fetch")).Result;
string connectionString =
- $"server={_configuration.GetSection("AudioMySqlServer")["Server"]};uid={_configuration.GetSection("AudioMySqlServer")["Username"]};pwd={_configuration.GetSection("AudioMySqlServer")["Password"]};database={_configuration.GetSection("AudioMySqlServer")["Database"]};charset=utf8;convert zero datetime=True";
+ $"server={Configuration.GetSection("AudioMySqlServer")["Server"]};uid={Configuration.GetSection("AudioMySqlServer")["Username"]};pwd={Configuration.GetSection("AudioMySqlServer")["Password"]};database={Configuration.GetSection("AudioMySqlServer")["Database"]};charset=utf8;convert zero datetime=True";
using (MySqlConnection connection = new MySqlConnection
(
@@ -1037,7 +1037,7 @@ namespace RMuseum.Services.Implementation
//poet image
- string imagePath = Path.Combine(_configuration.GetSection("AudioMySqlServer")["PoetImagesImportPath"], $"{poet.Id}.png");
+ string imagePath = Path.Combine(Configuration.GetSection("AudioMySqlServer")["PoetImagesImportPath"], $"{poet.Id}.png");
if (!File.Exists(imagePath))
{
job = (await jobProgressServiceEF.UpdateJob(job.Id, curPoet, $"{jobName} - {poet.Name} - {poet.Id}.png not found")).Result;
@@ -1045,7 +1045,7 @@ namespace RMuseum.Services.Implementation
}
- ImageFileServiceEF imageFileService = new ImageFileServiceEF(context, _configuration);
+ ImageFileServiceEF imageFileService = new ImageFileServiceEF(context, Configuration);
using(FileStream fs = File.OpenRead(imagePath))
{
diff --git a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-SQLiteUtils.cs b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-SQLiteUtils.cs
index 38e9add4..1585b62d 100644
--- a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-SQLiteUtils.cs
+++ b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-SQLiteUtils.cs
@@ -46,9 +46,9 @@ namespace RMuseum.Services.Implementation
try
{
- string outDir = _configuration.GetSection("Ganjoor")["GDBStorage"];
- string imgDir = _configuration.GetSection("Ganjoor")["GDBStorageImageSource"];
- string xmlFile = _configuration.GetSection("Ganjoor")["GDBListXMLFile"];
+ string outDir = Configuration.GetSection("Ganjoor")["GDBStorage"];
+ string imgDir = Configuration.GetSection("Ganjoor")["GDBStorageImageSource"];
+ string xmlFile = Configuration.GetSection("Ganjoor")["GDBListXMLFile"];
var poets = await context.GanjoorPoets.AsNoTracking().ToListAsync();
@@ -160,7 +160,7 @@ namespace RMuseum.Services.Implementation
///
public async Task> ExportToSqlite(int poetId)
{
- return await _ExportToSqlite(_context, poetId, Path.Combine($"{_configuration.GetSection("PictureFileService")["StoragePath"]}", "SQLiteExports"));
+ return await _ExportToSqlite(_context, poetId, Path.Combine($"{Configuration.GetSection("PictureFileService")["StoragePath"]}", "SQLiteExports"));
}
private async Task> _ExportToSqlite(RMuseumDbContext context, int poetId, string dir, string fileName = null, bool ignoreBio = false)
@@ -247,7 +247,7 @@ namespace RMuseum.Services.Implementation
{
try
{
- string dir = Path.Combine($"{_configuration.GetSection("PictureFileService")["StoragePath"]}", "SQLiteImports");
+ string dir = Path.Combine($"{Configuration.GetSection("PictureFileService")["StoragePath"]}", "SQLiteImports");
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
@@ -259,7 +259,7 @@ namespace RMuseum.Services.Implementation
await file.CopyToAsync(fsMain);
}
- string email = $"{_configuration.GetSection("Ganjoor")["SystemEmail"]}";
+ string email = $"{Configuration.GetSection("Ganjoor")["SystemEmail"]}";
var userId = (await _appUserService.FindUserByEmail(email)).Result.Id;
_backgroundTaskQueue.QueueBackgroundWorkItem
@@ -490,7 +490,7 @@ namespace RMuseum.Services.Implementation
{
try
{
- string dir = Path.Combine($"{_configuration.GetSection("PictureFileService")["StoragePath"]}", "SQLiteImports");
+ string dir = Path.Combine($"{Configuration.GetSection("PictureFileService")["StoragePath"]}", "SQLiteImports");
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
diff --git a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-SitemapGenerator.cs b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-SitemapGenerator.cs
index 40d98073..5fa3c859 100644
--- a/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-SitemapGenerator.cs
+++ b/RMuseum/Services/Implementation/GanjoorService-Partials/GanjoorService-SitemapGenerator.cs
@@ -58,7 +58,7 @@ namespace RMuseum.Services.Implementation
var job = (await jobProgressServiceEF.NewJob("BuildSitemap", "Query data")).Result;
try
{
- string xmlSitemap = _configuration.GetSection("Ganjoor")["SitemapLocation"];
+ string xmlSitemap = Configuration.GetSection("Ganjoor")["SitemapLocation"];
if (File.Exists(xmlSitemap))
File.Delete(xmlSitemap);
diff --git a/RMuseum/Services/Implementation/GanjoorService.cs b/RMuseum/Services/Implementation/GanjoorService.cs
index 8ad8d61f..cce01f5f 100644
--- a/RMuseum/Services/Implementation/GanjoorService.cs
+++ b/RMuseum/Services/Implementation/GanjoorService.cs
@@ -468,7 +468,7 @@ namespace RMuseum.Services.Implementation
}
break;
}
- if (page.FullUrl != "/hashieha" && page.FullUrl != "/vazn" && page.FullUrl != "/simi" && page.FullUrl != "/audioclip")
+ if ( (AggressiveCacheEnabled || page.GanjoorPageType == GanjoorPageType.CatPage) && page.FullUrl != "/hashieha" && page.FullUrl != "/vazn" && page.FullUrl != "/simi" && page.FullUrl != "/audioclip")
{
_memoryCache.Set(cachKey, page);
}
@@ -1431,7 +1431,10 @@ namespace RMuseum.Services.Implementation
Comments = poemComments
};
- _memoryCache.Set(cachKey, poemViewModel);
+ if (AggressiveCacheEnabled)
+ {
+ _memoryCache.Set(cachKey, poemViewModel);
+ }
}
return new RServiceResult
(
@@ -3607,6 +3610,24 @@ namespace RMuseum.Services.Implementation
}
}
+ ///
+ /// aggressive cache
+ ///
+ public bool AggressiveCacheEnabled
+ {
+ get
+ {
+ try
+ {
+ return bool.Parse(Configuration["AggressiveCacheEnabled"]);
+ }
+ catch
+ {
+ return false;
+ }
+ }
+ }
+
///
/// Database Context
///
@@ -3615,7 +3636,7 @@ namespace RMuseum.Services.Implementation
///
/// Configuration
///
- protected IConfiguration _configuration { get; }
+ protected IConfiguration Configuration { get; }
///
/// Background Task Queue Instance
@@ -3667,7 +3688,7 @@ namespace RMuseum.Services.Implementation
_notificationService = notificationService;
_imageFileService = imageFileService;
_memoryCache = memoryCache;
- _configuration = configuration;
+ Configuration = configuration;
_httpClient = httpClient;
}
}
diff --git a/RMuseum/appsettings.json b/RMuseum/appsettings.json
index 7b121e43..8e639053 100644
--- a/RMuseum/appsettings.json
+++ b/RMuseum/appsettings.json
@@ -3,6 +3,7 @@
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=museum;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"DatabaseMigrate": "False",
+ "AggressiveCacheEnabled": "False",
"PictureFileService": {
"StoragePath": "C:\\museum",
"ResizedImageContentType": "image/jpeg",