- Changement du typage

This commit is contained in:
BuzzLeclair 2025-03-08 18:57:22 +01:00
parent cc12d77fba
commit 9803ef0af6
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<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<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); params Expression<Func<T, object>>[] includeProperties);
Task<IResponseDataModel<T>> Create(TCreateDto dto); Task<IResponseDataModel<T>> Create(TCreateDto dto);
Task<IResponseDataModel<T>> Update(TUpdateDto 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) if (string.IsNullOrWhiteSpace(searchTerm) || searchTerm.Length < 2)
{ {
return new ResponseDataModel<PaginatedList<TDto>> return new ResponseDataModel<List<TDto>>
{ {
Success = false, Success = false,
Message = "Le terme de recherche doit contenir au moins deux caractères.", 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 try
{ {
var predicate = BuildSearchPredicate(searchTerm); var predicate = BuildSearchPredicate(searchTerm);
var entities = await _repository.SearchAsync(predicate, pageNumber, pageSize, includeProperties); var response = await _repository.SearchAsync(predicate, pageNumber, pageSize, includeProperties);
var dtos = _mapper.Map<List<TDto>>(entities); var dtos = _mapper.Map<List<TDto>>(response.Data);
var totalCount = await _repository.CountAsync(predicate);
var response = new PaginatedList<TDto>(dtos, totalCount, pageNumber, pageSize);
return new ResponseDataModel<PaginatedList<TDto>> return new ResponseDataModel<List<TDto>>
{ {
Success = true, Success = true,
Data = response, Data = dtos,
TotalPages = response.TotalPages, TotalPages = response.TotalPages,
TotalCount = response.TotalCount, TotalCount = response.TotalItems,
StatusCode = 200, StatusCode = 200,
Message = "Recherche effectuée avec succès." Message = "Recherche effectuée avec succès."
}; };
@ -303,7 +300,7 @@ public class ServiceBase<T, TDto, TCreateDto, TUpdateDto> : IServiceBase<T, TDto
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, "Une erreur s'est produite lors de la recherche des entités."); _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, Success = false,
Message = "Une erreur s'est produite lors de la recherche des entités.", Message = "Une erreur s'est produite lors de la recherche des entités.",