#444 GetCategoryWordCountsAsync

This commit is contained in:
Hamid Reza Mohammadi 2024-06-25 17:48:48 +03:30
parent 7601a48ca7
commit bd1bdb3c03
4 changed files with 45 additions and 37 deletions

View File

@ -4214,6 +4214,32 @@ namespace RMuseum.Controllers
return Ok();
}
/// <summary>
/// category word counts
/// </summary>
/// <param name="catId"></param>
/// <param name="term">can be empty</param>
/// <param name="paging"></param>
/// <returns></returns>
[HttpGet]
[Route("wordcounts/{catId}")]
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable<GanjoorPoemCompleteViewModel>))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> GetCategoryWordCountsAsync(int catId, string term, [FromQuery] PagingParameterModel paging)
{
var pagedResult = await _ganjoorService.GetCategoryWordCountsAsync(catId, term, paging);
if (!string.IsNullOrEmpty(pagedResult.ExceptionString))
return BadRequest(pagedResult.ExceptionString);
// Paging Header
HttpContext.Response.Headers.Append("paging-headers", JsonConvert.SerializeObject(pagedResult.Result.PagingMeta));
return Ok(pagedResult.Result.Items);
}
/// <summary>

View File

@ -2220,6 +2220,15 @@
</summary>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.GanjoorController.GetCategoryWordCountsAsync(System.Int32,System.String,RSecurityBackend.Models.Generic.PagingParameterModel)">
<summary>
category word counts
</summary>
<param name="catId"></param>
<param name="term">can be empty</param>
<param name="paging"></param>
<returns></returns>
</member>
<member name="P:RMuseum.Controllers.GanjoorController.ReadOnlyMode">
<summary>
readonly mode
@ -16565,11 +16574,12 @@
fill CategoryWordCounts.RowNmbrInCat
</summary>
</member>
<member name="M:RMuseum.Services.IGanjoorService.CategoryWordCountsAsync(System.Int32,RSecurityBackend.Models.Generic.PagingParameterModel)">
<member name="M:RMuseum.Services.IGanjoorService.GetCategoryWordCountsAsync(System.Int32,System.String,RSecurityBackend.Models.Generic.PagingParameterModel)">
<summary>
catgoru words count
category words count
</summary>
<param name="catId"></param>
<param name="term"></param>
<param name="paging"></param>
<returns></returns>
</member>
@ -18127,11 +18137,12 @@
<param name="q"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.Implementation.GanjoorService.CategoryWordCountsAsync(System.Int32,RSecurityBackend.Models.Generic.PagingParameterModel)">
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetCategoryWordCountsAsync(System.Int32,System.String,RSecurityBackend.Models.Generic.PagingParameterModel)">
<summary>
catgoru words count
category word counts
</summary>
<param name="catId"></param>
<param name="term"></param>
<param name="paging"></param>
<returns></returns>
</member>

View File

@ -1447,18 +1447,10 @@ namespace RMuseum.Services
/// category words count
/// </summary>
/// <param name="catId"></param>
/// <param name="paging"></param>
/// <returns></returns>
Task<RServiceResult<(PaginationMetadata PagingMeta, CategoryWordCount[] Items)>> CategoryWordCountsAsync(int catId, PagingParameterModel paging);
/// <summary>
/// search in category words count
/// </summary>
/// <param name="catId"></param>
/// <param name="term"></param>
/// <param name="paging"></param>
/// <returns></returns>
Task<RServiceResult<(PaginationMetadata PagingMeta, CategoryWordCount[] Items)>> SearchInCategoryWordCountsAsync(int catId, string term, PagingParameterModel paging);
Task<RServiceResult<(PaginationMetadata PagingMeta, CategoryWordCount[] Items)>> GetCategoryWordCountsAsync(int catId, string term, PagingParameterModel paging);
}
}

View File

@ -20,38 +20,17 @@ namespace RMuseum.Services.Implementation
public partial class GanjoorService : IGanjoorService
{
/// <summary>
/// search in category words count
/// category word counts
/// </summary>
/// <param name="catId"></param>
/// <param name="term"></param>
/// <param name="paging"></param>
/// <returns></returns>
public async Task<RServiceResult<(PaginationMetadata PagingMeta, CategoryWordCount[] Items)>> SearchInCategoryWordCountsAsync(int catId, string term, PagingParameterModel paging)
public async Task<RServiceResult<(PaginationMetadata PagingMeta, CategoryWordCount[] Items)>> GetCategoryWordCountsAsync(int catId, string term, PagingParameterModel paging)
{
var source =
from cwd in _context.CategoryWordCounts
where cwd.CatId == catId && cwd.Word.Contains(term)
orderby cwd.RowNmbrInCat
select
cwd;
(PaginationMetadata PagingMeta, CategoryWordCount[] Items) paginatedResult =
await QueryablePaginator<CategoryWordCount>.Paginate(source, paging);
return new RServiceResult<(PaginationMetadata PagingMeta, CategoryWordCount[] Items)>(paginatedResult);
}
/// <summary>
/// category word counts
/// </summary>
/// <param name="catId"></param>
/// <param name="paging"></param>
/// <returns></returns>
public async Task<RServiceResult<(PaginationMetadata PagingMeta, CategoryWordCount[] Items)>> CategoryWordCountsAsync(int catId, PagingParameterModel paging)
{
var source =
from cwd in _context.CategoryWordCounts
where cwd.CatId == catId
where cwd.CatId == catId && (string.IsNullOrEmpty(term) || cwd.Word.Contains(term) )
orderby cwd.RowNmbrInCat
select
cwd;