- Changement du typage #18

Merged
Yoann merged 1 commits from feat/modif-reponse-search into dev 2025-03-08 18:57:58 +01:00
2 changed files with 9 additions and 12 deletions

View File

@ -14,7 +14,7 @@ public interface IServiceBase<T, TDto, TCreateDto, TUpdateDto>
Task<IResponseDataModel<TDto>> GetByIdWithRelations(int id, params Expression<Func<T, object>>[] relationsAInclures); // préciser avec une ou des fonctions lambda les relations à inclure dans la réponse
Task<IResponseDataModel<List<TDto>>> GetAllWithRelationsAsync(int pageNumber, int pageSize, params Expression<Func<T, object>>[] relationsAInclure);
Task<IResponseDataModel<PaginatedList<TDto>>> SearchWithRelations(string searchTerm, int pageNumber, int pageSize,
Task<IResponseDataModel<List<TDto>>> SearchWithRelations(string searchTerm, int pageNumber, int pageSize,
params Expression<Func<T, object>>[] includeProperties);
Task<IResponseDataModel<T>> Create(TCreateDto dto);
Task<IResponseDataModel<T>> Update(TUpdateDto dto);

View File

@ -269,11 +269,11 @@ public class ServiceBase<T, TDto, TCreateDto, TUpdateDto> : IServiceBase<T, TDto
}
}
public virtual async Task<IResponseDataModel<PaginatedList<TDto>>> SearchWithRelations(string searchTerm, int pageNumber, int pageSize, params Expression<Func<T, object>>[] includeProperties)
public virtual async Task<IResponseDataModel<List<TDto>>> SearchWithRelations(string searchTerm, int pageNumber, int pageSize, params Expression<Func<T, object>>[] includeProperties)
{
if (string.IsNullOrWhiteSpace(searchTerm) || searchTerm.Length < 2)
{
return new ResponseDataModel<PaginatedList<TDto>>
return new ResponseDataModel<List<TDto>>
{
Success = false,
Message = "Le terme de recherche doit contenir au moins deux caractères.",
@ -284,18 +284,15 @@ public class ServiceBase<T, TDto, TCreateDto, TUpdateDto> : IServiceBase<T, TDto
try
{
var predicate = BuildSearchPredicate(searchTerm);
var entities = await _repository.SearchAsync(predicate, pageNumber, pageSize, includeProperties);
var dtos = _mapper.Map<List<TDto>>(entities);
var totalCount = await _repository.CountAsync(predicate);
var response = await _repository.SearchAsync(predicate, pageNumber, pageSize, includeProperties);
var dtos = _mapper.Map<List<TDto>>(response.Data);
var response = new PaginatedList<TDto>(dtos, totalCount, pageNumber, pageSize);
return new ResponseDataModel<PaginatedList<TDto>>
return new ResponseDataModel<List<TDto>>
{
Success = true,
Data = response,
Data = dtos,
TotalPages = response.TotalPages,
TotalCount = response.TotalCount,
TotalCount = response.TotalItems,
StatusCode = 200,
Message = "Recherche effectuée avec succès."
};
@ -303,7 +300,7 @@ public class ServiceBase<T, TDto, TCreateDto, TUpdateDto> : IServiceBase<T, TDto
catch (Exception ex)
{
_logger.LogError(ex, "Une erreur s'est produite lors de la recherche des entités.");
return new ResponseDataModel<PaginatedList<TDto>>
return new ResponseDataModel<List<TDto>>
{
Success = false,
Message = "Une erreur s'est produite lors de la recherche des entités.",