#478 refactoring

This commit is contained in:
Hamid Reza Mohammadi 2025-03-27 15:35:46 +03:30
parent 5918115c23
commit 2554128f4d
2 changed files with 90 additions and 137 deletions

View File

@ -36,7 +36,7 @@ namespace RMuseum.Controllers
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable<GroupedByDateViewModel>))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> GetApprovedEditsGroupedByDateAsync(string dataType, [FromQuery] PagingParameterModel paging, Guid? userId = null)
public async Task<IActionResult> GetDataGroupedByDateAsync(string dataType, [FromQuery] PagingParameterModel paging, Guid? userId = null)
{
var cacheKey = $"{dataType}/daily/{DateTime.Now.Date}/{paging.PageSize}/{paging.PageNumber}/{userId ?? Guid.Empty}";
if (!_memoryCache.TryGetValue(cacheKey, out (PaginationMetadata PagingMeta, GroupedByDateViewModel[] Tracks) pagedResult))
@ -94,9 +94,16 @@ namespace RMuseum.Controllers
}
/// <summary>
/// approved edits grouped by user
/// datatype grouped by user
/// </summary>
/// <param name="dataType"></param>
/// <param name="dataType">
/// poem/corrections
/// section/corrections
/// cat/corrections
/// cat/corrections
/// suggestedsongs
/// quoteds
/// </param>
/// <param name="paging"></param>
/// <param name="day"></param>
/// <param name="userId"></param>
@ -105,7 +112,7 @@ namespace RMuseum.Controllers
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable<GroupedByUserViewModel>))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> GetApprovedEditsGroupedByUserAsync(string dataType, [FromQuery] PagingParameterModel paging, DateTime? day, Guid? userId)
public async Task<IActionResult> GetDataGroupedByUserAsync(string dataType, [FromQuery] PagingParameterModel paging, DateTime? day, Guid? userId)
{
var cacheKey = $"{dataType}/by/user/{(day ?? DateTime.Now).Date}/{paging.PageSize}/{paging.PageNumber}/{userId ?? Guid.Empty}";
if (!_memoryCache.TryGetValue(cacheKey, out (PaginationMetadata PagingMeta, GroupedByUserViewModel[] Tracks) pagedResult))
@ -164,120 +171,75 @@ namespace RMuseum.Controllers
}
/// <summary>
/// summed up stats of approved poem corrections
/// summed up stats of data
/// </summary>
/// <param name="dataType">
/// poem/corrections
/// section/corrections
/// cat/corrections
/// cat/corrections
/// suggestedsongs
/// quoteds
/// </param>
/// <returns></returns>
[HttpGet("poem/corrections")]
[HttpGet("{dataType}")]
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(SummedUpViewModel))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> GetApprrovedEditsSummedUpStatsAsync()
public async Task<IActionResult> GetDataSummedUpStatsAsync(string dataType)
{
if (!_memoryCache.TryGetValue($"poem/corrections/{DateTime.Now.Date}", out SummedUpViewModel result))
if (!_memoryCache.TryGetValue($"{dataType}/{DateTime.Now.Date}", out SummedUpViewModel result))
{
var res = await _service.GetApprrovedEditsSummedUpStatsAsync();
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
result = res.Result;
switch(dataType)
{
case "poem/corrections":
{
var res = await _service.GetApprrovedEditsSummedUpStatsAsync();
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
result = res.Result;
}
break;
case "section/corrections":
{
var res = await _service.GetApprrovedSectionEditsSummedUpStatsAsync();
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
result = res.Result;
}
break;
case "cat/corrections":
{
var res = await _service.GetApprrovedCatEditsSummedUpStatsAsync();
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
result = res.Result;
}
break;
case "suggestedsongs":
{
var res = await _service.GetApprovedRelatedSongsSummedUpStatsAsync();
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
result = res.Result;
}
break;
case "quoteds":
{
var res = await _service.GetApprovedQuotedPoemsSummedUpStatsAsync();
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
result = res.Result;
}
break;
default:
return BadRequest("invalid value for the paramater: dataType");
}
}
return Ok(result);
}
/// <summary>
/// summed up stats of approved section corrections
/// </summary>
/// <returns></returns>
[HttpGet("section/corrections")]
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(SummedUpViewModel))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> GetApprrovedSedtionEditsSummedUpStatsAsync()
{
if (!_memoryCache.TryGetValue($"section/corrections/{DateTime.Now.Date}", out SummedUpViewModel result))
{
var res = await _service.GetApprrovedSectionEditsSummedUpStatsAsync();
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
result = res.Result;
}
return Ok(result);
}
/// <summary>
/// summed up stats of approved cat corrections
/// </summary>
/// <returns></returns>
[HttpGet("cat/corrections")]
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(SummedUpViewModel))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> GetApprrovedCatEditsSummedUpStatsAsync()
{
if (!_memoryCache.TryGetValue($"cat/corrections/{DateTime.Now.Date}", out SummedUpViewModel result))
{
var res = await _service.GetApprrovedCatEditsSummedUpStatsAsync();
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
result = res.Result;
}
return Ok(result);
}
/// <summary>
/// summed up stats of approved related songs
/// </summary>
/// <returns></returns>
[HttpGet("suggestedsongs")]
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(SummedUpViewModel))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> GetApprovedRelatedSongsSummedUpStatsAsync()
{
if (!_memoryCache.TryGetValue($"suggestedsongs/{DateTime.Now.Date}", out SummedUpViewModel result))
{
var res = await _service.GetApprovedRelatedSongsSummedUpStatsAsync();
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
result = res.Result;
}
return Ok(result);
}
/// <summary>
/// summed up stats of quoted poems
/// </summary>
/// <returns></returns>
[HttpGet("quoteds")]
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(SummedUpViewModel))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> GetApprovedQuotedPoemsSummedUpStatsAsync()
{
if (!_memoryCache.TryGetValue($"quoteds/{DateTime.Now.Date}", out SummedUpViewModel result))
{
var res = await _service.GetApprovedQuotedPoemsSummedUpStatsAsync();
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
result = res.Result;
}
return Ok(result);
}
/// <summary>
/// service
/// </summary>

View File

@ -762,7 +762,7 @@
<param name="auditLogService">
</param>
</member>
<member name="M:RMuseum.Controllers.ContributionStatsController.GetApprovedEditsGroupedByDateAsync(System.String,RSecurityBackend.Models.Generic.PagingParameterModel,System.Nullable{System.Guid})">
<member name="M:RMuseum.Controllers.ContributionStatsController.GetDataGroupedByDateAsync(System.String,RSecurityBackend.Models.Generic.PagingParameterModel,System.Nullable{System.Guid})">
<summary>
daily stats
</summary>
@ -778,44 +778,35 @@
<param name="userId"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.ContributionStatsController.GetApprovedEditsGroupedByUserAsync(System.String,RSecurityBackend.Models.Generic.PagingParameterModel,System.Nullable{System.DateTime},System.Nullable{System.Guid})">
<member name="M:RMuseum.Controllers.ContributionStatsController.GetDataGroupedByUserAsync(System.String,RSecurityBackend.Models.Generic.PagingParameterModel,System.Nullable{System.DateTime},System.Nullable{System.Guid})">
<summary>
approved edits grouped by user
datatype grouped by user
</summary>
<param name="dataType"></param>
<param name="dataType">
poem/corrections
section/corrections
cat/corrections
cat/corrections
suggestedsongs
quoteds
</param>
<param name="paging"></param>
<param name="day"></param>
<param name="userId"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.ContributionStatsController.GetApprrovedEditsSummedUpStatsAsync">
<member name="M:RMuseum.Controllers.ContributionStatsController.GetDataSummedUpStatsAsync(System.String)">
<summary>
summed up stats of approved poem corrections
</summary>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.ContributionStatsController.GetApprrovedSedtionEditsSummedUpStatsAsync">
<summary>
summed up stats of approved section corrections
</summary>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.ContributionStatsController.GetApprrovedCatEditsSummedUpStatsAsync">
<summary>
summed up stats of approved cat corrections
</summary>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.ContributionStatsController.GetApprovedRelatedSongsSummedUpStatsAsync">
<summary>
summed up stats of approved related songs
</summary>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.ContributionStatsController.GetApprovedQuotedPoemsSummedUpStatsAsync">
<summary>
summed up stats of quoted poems
summed up stats of data
</summary>
<param name="dataType">
poem/corrections
section/corrections
cat/corrections
cat/corrections
suggestedsongs
quoteds
</param>
<returns></returns>
</member>
<member name="F:RMuseum.Controllers.ContributionStatsController._service">