#218 added AggressiveCacheEnabled option

This commit is contained in:
Hamid Reza Mohammadi 2021-10-05 07:06:03 +03:30
parent 11e00e8923
commit 6ed511cd45
6 changed files with 53 additions and 26 deletions

View File

@ -10848,12 +10848,17 @@
<param name="id"></param>
<returns></returns>
</member>
<member name="P:RMuseum.Services.Implementation.GanjoorService.AggressiveCacheEnabled">
<summary>
aggressive cache
</summary>
</member>
<member name="F:RMuseum.Services.Implementation.GanjoorService._context">
<summary>
Database Context
</summary>
</member>
<member name="P:RMuseum.Services.Implementation.GanjoorService._configuration">
<member name="P:RMuseum.Services.Implementation.GanjoorService.Configuration">
<summary>
Configuration
</summary>

View File

@ -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<bool> 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<GanjoorCommentAbuseReport> list = new List<GanjoorCommentAbuseReport>();
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))
{

View File

@ -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
/// <returns></returns>
public async Task<RServiceResult<string>> 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<RServiceResult<string>> _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);

View File

@ -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);

View File

@ -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<GanjoorPoemCompleteViewModel>
(
@ -3607,6 +3610,24 @@ namespace RMuseum.Services.Implementation
}
}
/// <summary>
/// aggressive cache
/// </summary>
public bool AggressiveCacheEnabled
{
get
{
try
{
return bool.Parse(Configuration["AggressiveCacheEnabled"]);
}
catch
{
return false;
}
}
}
/// <summary>
/// Database Context
/// </summary>
@ -3615,7 +3636,7 @@ namespace RMuseum.Services.Implementation
/// <summary>
/// Configuration
/// </summary>
protected IConfiguration _configuration { get; }
protected IConfiguration Configuration { get; }
/// <summary>
/// Background Task Queue Instance
@ -3667,7 +3688,7 @@ namespace RMuseum.Services.Implementation
_notificationService = notificationService;
_imageFileService = imageFileService;
_memoryCache = memoryCache;
_configuration = configuration;
Configuration = configuration;
_httpClient = httpClient;
}
}

View File

@ -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",