diff --git a/Streetcode/Streetcode.BLL/MediatR/Toponyms/GetByStreetcodeId/GetToponymsByStreetcodeIdHandler.cs b/Streetcode/Streetcode.BLL/MediatR/Toponyms/GetByStreetcodeId/GetToponymsByStreetcodeIdHandler.cs index 01b3e97..cbbe319 100644 --- a/Streetcode/Streetcode.BLL/MediatR/Toponyms/GetByStreetcodeId/GetToponymsByStreetcodeIdHandler.cs +++ b/Streetcode/Streetcode.BLL/MediatR/Toponyms/GetByStreetcodeId/GetToponymsByStreetcodeIdHandler.cs @@ -1,11 +1,14 @@ using AutoMapper; using FluentResults; using MediatR; -using Microsoft.EntityFrameworkCore; -using Streetcode.BLL.DTO.AdditionalContent.Subtitles; using Streetcode.BLL.DTO.Toponyms; +using Microsoft.EntityFrameworkCore; using Streetcode.BLL.Interfaces.Logging; using Streetcode.DAL.Repositories.Interfaces.Base; +using AutoMapper.QueryableExtensions; + +#pragma warning disable SA1111 //Closing parenthesis should be on line of last parameter +#pragma warning disable SA1513 //Closing brace should be followed by blank line namespace Streetcode.BLL.MediatR.Toponyms.GetByStreetcodeId; @@ -24,21 +27,16 @@ public GetToponymsByStreetcodeIdHandler(IRepositoryWrapper repositoryWrapper, IM public async Task>> Handle(GetToponymsByStreetcodeIdQuery request, CancellationToken cancellationToken) { - var toponyms = await _repositoryWrapper - .ToponymRepository - .GetAllAsync( - predicate: sc => sc.Streetcodes.Any(s => s.Id == request.StreetcodeId), - include: scl => scl - .Include(sc => sc.Coordinate)); - toponyms.DistinctBy(x => x.StreetName); - if (toponyms is null) + List toponyms = await _repositoryWrapper.ToponymRepository.FindAll( + sc => sc.Streetcodes.Any(s => s.Id == request.StreetcodeId) + ).DistinctBy(t => t.StreetName).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(cancellationToken); + + if(toponyms.Count == 0) { string errorMsg = $"Cannot find any toponym by the streetcode id: {request.StreetcodeId}"; _logger.LogError(request, errorMsg); return Result.Fail(new Error(errorMsg)); } - - var toponymDto = toponyms.GroupBy(x => x.StreetName).Select(group => group.First()).Select(x => _mapper.Map(x)); - return Result.Ok(toponymDto); + return Result.Ok(toponyms.AsEnumerable()); } -} +} \ No newline at end of file