#406 search books using BookText field

This commit is contained in:
Hamid Reza Mohammadi 2023-08-11 11:38:42 +03:30
parent 829cc2b6c1
commit cdb41862ed
4 changed files with 11 additions and 11 deletions

View File

@ -1245,7 +1245,7 @@ namespace RMuseum.Controllers
}
/// <summary>
/// search pages text
/// search book text
/// </summary>
/// <param name="paging"></param>
/// <param name="term"></param>
@ -1265,7 +1265,7 @@ namespace RMuseum.Controllers
// Paging Header
HttpContext.Response.Headers.Add("paging-headers", JsonConvert.SerializeObject(pagedResult.Result.PagingMeta));
return Ok(pagedResult.Result.Items);
return Ok(pagedResult.Result.Books);
}
/// <summary>

View File

@ -2734,7 +2734,7 @@
</member>
<member name="M:RMuseum.Controllers.PDFLibraryController.SearchPDFBookForPDFPagesTextAsync(RSecurityBackend.Models.Generic.PagingParameterModel,System.String)">
<summary>
search pages text
search book text
</summary>
<param name="paging"></param>
<param name="term"></param>

View File

@ -412,7 +412,7 @@ namespace RMuseum.Services
/// <param name="paging"></param>
/// <param name="term"></param>
/// <returns></returns>
Task<RServiceResult<(PaginationMetadata PagingMeta, PDFBook[] Items)>> SearchPDFBookForPDFPagesTextAsync(PagingParameterModel paging, string term);
Task<RServiceResult<(PaginationMetadata PagingMeta, PDFBook[] Books)>> SearchPDFBookForPDFPagesTextAsync(PagingParameterModel paging, string term);
/// <summary>
/// search pdf pages

View File

@ -1782,7 +1782,7 @@ namespace RMuseum.Services.Implementation
/// <param name="paging"></param>
/// <param name="term"></param>
/// <returns></returns>
public async Task<RServiceResult<(PaginationMetadata PagingMeta, PDFBook[] Items)>> SearchPDFBookForPDFPagesTextAsync(PagingParameterModel paging, string term)
public async Task<RServiceResult<(PaginationMetadata PagingMeta, PDFBook[] Books)>> SearchPDFBookForPDFPagesTextAsync(PagingParameterModel paging, string term)
{
try
{
@ -1815,28 +1815,28 @@ namespace RMuseum.Services.Implementation
//full text catalogue should be created manually
var source =
_context.PDFBooks.AsNoTracking().Include(a => a.Pages)
_context.PDFBooks.AsNoTracking()
.Where(p =>
p.Status == PublishStatus.Published
&&
p.Pages.Where(t => EF.Functions.Contains(t.PageText, searchConditions)).Any()
EF.Functions.Contains(p.BookText, searchConditions)
).OrderBy(i => i.Title);
(PaginationMetadata PagingMeta, PDFBook[] Items) paginatedResult =
(PaginationMetadata PagingMeta, PDFBook[] Books) paginatedResult =
await QueryablePaginator<PDFBook>.Paginate(source, paging);
foreach (var book in paginatedResult.Items)
foreach (var book in paginatedResult.Books)
{
book.BookText = "";
}
return new RServiceResult<(PaginationMetadata PagingMeta, PDFBook[] Items)>(paginatedResult);
return new RServiceResult<(PaginationMetadata PagingMeta, PDFBook[] Books)>(paginatedResult);
}
catch (Exception exp)
{
return new RServiceResult<(PaginationMetadata PagingMeta, PDFBook[] Items)>((null, null), exp.ToString());
return new RServiceResult<(PaginationMetadata PagingMeta, PDFBook[] Books)>((null, null), exp.ToString());
}
}