#467 GetUserCatCorrectionsAsync

This commit is contained in:
Hamid Reza Mohammadi 2025-02-14 16:47:10 +03:30
parent 4fe58c5822
commit 5f78753cf9
2 changed files with 56 additions and 0 deletions

View File

@ -20611,6 +20611,14 @@
<param name="catID"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetUserCatCorrectionsAsync(System.Guid,RSecurityBackend.Models.Generic.PagingParameterModel)">
<summary>
get user or all corrections for categories
</summary>
<param name="userId">if sent empty returns all corrections</param>
<param name="paging"></param>
<returns></returns>
</member>
<member name="P:RMuseum.Services.Implementation.GanjoorService.AggressiveCacheEnabled">
<summary>
aggressive cache

View File

@ -3974,6 +3974,54 @@ namespace RMuseum.Services.Implementation
);
}
/// <summary>
/// get user or all corrections for categories
/// </summary>
/// <param name="userId">if sent empty returns all corrections</param>
/// <param name="paging"></param>
/// <returns></returns>
public async Task<RServiceResult<(PaginationMetadata PagingMeta, GanjoorCatCorrectionViewModel[] Items)>> GetUserCatCorrectionsAsync(Guid userId, PagingParameterModel paging)
{
var source = from dbCorrection in
_context.GanjoorCatCorrections.AsNoTracking().Include(c => c.User)
where userId == Guid.Empty || dbCorrection.UserId == userId
orderby dbCorrection.Id descending
select
dbCorrection;
(PaginationMetadata PagingMeta, GanjoorCatCorrection[] Items) dbPaginatedResult =
await QueryablePaginator<GanjoorCatCorrection>.Paginate(source, paging);
List<GanjoorCatCorrectionViewModel> list = new List<GanjoorCatCorrectionViewModel>();
foreach (var dbCorrection in dbPaginatedResult.Items)
{
list.Add
(
new GanjoorCatCorrectionViewModel()
{
Id = dbCorrection.Id,
CatId = dbCorrection.CatId,
UserId = dbCorrection.UserId,
Description = dbCorrection.Description,
DescriptionHtml = dbCorrection.DescriptionHtml,
OriginalDescription = dbCorrection.OriginalDescription,
OriginalDescriptionHtml = dbCorrection.OriginalDescriptionHtml,
Note = dbCorrection.Note,
Date = dbCorrection.Date,
Reviewed = dbCorrection.Reviewed,
Result = dbCorrection.Result,
ReviewNote = dbCorrection.ReviewNote,
ReviewDate = dbCorrection.ReviewDate,
UserNickname = dbCorrection.HideMyName && dbCorrection.Reviewed ? "" : string.IsNullOrEmpty(dbCorrection.User.NickName) ? dbCorrection.User.Id.ToString() : dbCorrection.User.NickName,
HideMyName = dbCorrection.HideMyName,
}
);
}
return new RServiceResult<(PaginationMetadata, GanjoorCatCorrectionViewModel[])>
((dbPaginatedResult.PagingMeta, list.ToArray()));
}
/// <summary>
/// aggressive cache