diff --git a/src/FilterLists.Services/FilterListService/FilterListService.cs b/src/FilterLists.Services/FilterListService/FilterListService.cs index c51994c65..0658a9000 100644 --- a/src/FilterLists.Services/FilterListService/FilterListService.cs +++ b/src/FilterLists.Services/FilterListService/FilterListService.cs @@ -25,11 +25,11 @@ public async Task> GetAllSummariesAsync() .ToListAsync(); } - public async Task GetDetailsAsync(int id) + public async Task GetDetailsAsync(int id) { return await filterListsDbContext.FilterLists .AsNoTracking() - .ProjectTo() + .ProjectTo() .FirstAsync(x => x.Id == id); } } diff --git a/src/FilterLists.Services/FilterListService/FilterListDetailsDto.cs b/src/FilterLists.Services/FilterListService/ListDetailsDto.cs similarity index 58% rename from src/FilterLists.Services/FilterListService/FilterListDetailsDto.cs rename to src/FilterLists.Services/FilterListService/ListDetailsDto.cs index 212fae25c..c41bbb9d8 100644 --- a/src/FilterLists.Services/FilterListService/FilterListDetailsDto.cs +++ b/src/FilterLists.Services/FilterListService/ListDetailsDto.cs @@ -1,10 +1,9 @@ using System; using System.Collections.Generic; -using FilterLists.Data.Entities; namespace FilterLists.Services.FilterListService { - public class FilterListDetailsDto + public class ListDetailsDto { public int Id { get; set; } public string Description { get; set; } @@ -16,11 +15,27 @@ public class FilterListDetailsDto public string HomeUrl { get; set; } public string IssuesUrl { get; set; } public IEnumerable Languages { get; set; } - public IEnumerable Maintainers { get; set; } + public IEnumerable Maintainers { get; set; } public string Name { get; set; } public string PolicyUrl { get; set; } public DateTime? PublishedDate { get; set; } public string SubmissionUrl { get; set; } public string ViewUrl { get; set; } } + + public class ListMaintainerDto + { + public int Id { get; set; } + public string EmailAddress { get; set; } + public string HomeUrl { get; set; } + public string Name { get; set; } + public string TwitterHandle { get; set; } + public IEnumerable AdditionalLists { get; set; } + } + + public class MaintainerAdditionalListsDto + { + public int Id { get; set; } + public string Name { get; set; } + } } \ No newline at end of file diff --git a/src/FilterLists.Services/FilterListService/MaintainerDto.cs b/src/FilterLists.Services/FilterListService/MaintainerDto.cs deleted file mode 100644 index e4b1589ba..000000000 --- a/src/FilterLists.Services/FilterListService/MaintainerDto.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace FilterLists.Services.FilterListService -{ - public class MaintainerDto - { - public int Id { get; set; } - public string EmailAddress { get; set; } - public string HomeUrl { get; set; } - public string Name { get; set; } - public string TwitterHandle { get; set; } - } -} \ No newline at end of file diff --git a/src/FilterLists.Services/FilterListService/MappingProfiles.cs b/src/FilterLists.Services/FilterListService/MappingProfiles.cs index 8a5e563d0..1025663f7 100644 --- a/src/FilterLists.Services/FilterListService/MappingProfiles.cs +++ b/src/FilterLists.Services/FilterListService/MappingProfiles.cs @@ -8,7 +8,12 @@ public class MappingProfiles : Profile { public MappingProfiles() { - CreateMap() + CreateMap() + .ForMember(dto => dto.Languages, + conf => conf.MapFrom(list => + list.FilterListLanguages.Select(listLangs => listLangs.Language.Name))); + + CreateMap() .ForMember(dto => dto.Languages, conf => conf.MapFrom(list => list.FilterListLanguages.Select(listLangs => listLangs.Language.Name))) @@ -16,11 +21,10 @@ public MappingProfiles() conf => conf.MapFrom(list => list.FilterListMaintainers.Select(listMaints => listMaints.Maintainer))); - //TODO: improve performance (https://stackoverflow.com/q/48897083/2343739) - CreateMap() - .ForMember(dto => dto.Languages, - conf => conf.MapFrom(list => - list.FilterListLanguages.Select(listLangs => listLangs.Language.Name))); + CreateMap() + .ForMember(dto => dto.AdditionalLists, + conf => conf.MapFrom(maint => + maint.FilterListMaintainers.Select(listMaints => listMaints.FilterList))); } } } \ No newline at end of file