Remove double filtering in entity history repository

This commit is contained in:
Bogdan 2024-01-12 17:35:41 +02:00
parent 7b8c17c793
commit d537d79f75
1 changed files with 3 additions and 5 deletions

View File

@ -121,23 +121,21 @@ namespace NzbDrone.Core.History
public PagingSpec<EntityHistory> GetPaged(PagingSpec<EntityHistory> pagingSpec, int[] qualities) public PagingSpec<EntityHistory> GetPaged(PagingSpec<EntityHistory> pagingSpec, int[] qualities)
{ {
pagingSpec.Records = GetPagedRecords(PagedBuilder(pagingSpec, qualities), pagingSpec, PagedQuery); pagingSpec.Records = GetPagedRecords(PagedBuilder(qualities), pagingSpec, PagedQuery);
var countTemplate = $"SELECT COUNT(*) FROM (SELECT /**select**/ FROM \"{TableMapping.Mapper.TableNameMapping(typeof(EntityHistory))}\" /**join**/ /**innerjoin**/ /**leftjoin**/ /**where**/ /**groupby**/ /**having**/) AS \"Inner\""; var countTemplate = $"SELECT COUNT(*) FROM (SELECT /**select**/ FROM \"{TableMapping.Mapper.TableNameMapping(typeof(EntityHistory))}\" /**join**/ /**innerjoin**/ /**leftjoin**/ /**where**/ /**groupby**/ /**having**/) AS \"Inner\"";
pagingSpec.TotalRecords = GetPagedRecordCount(PagedBuilder(pagingSpec, qualities).Select(typeof(EntityHistory)), pagingSpec, countTemplate); pagingSpec.TotalRecords = GetPagedRecordCount(PagedBuilder(qualities).Select(typeof(EntityHistory)), pagingSpec, countTemplate);
return pagingSpec; return pagingSpec;
} }
private SqlBuilder PagedBuilder(PagingSpec<EntityHistory> pagingSpec, int[] qualities) private SqlBuilder PagedBuilder(int[] qualities)
{ {
var builder = Builder() var builder = Builder()
.Join<EntityHistory, Artist>((h, a) => h.ArtistId == a.Id) .Join<EntityHistory, Artist>((h, a) => h.ArtistId == a.Id)
.Join<EntityHistory, Album>((h, a) => h.AlbumId == a.Id) .Join<EntityHistory, Album>((h, a) => h.AlbumId == a.Id)
.LeftJoin<EntityHistory, Track>((h, t) => h.TrackId == t.Id); .LeftJoin<EntityHistory, Track>((h, t) => h.TrackId == t.Id);
AddFilters(builder, pagingSpec);
if (qualities is { Length: > 0 }) if (qualities is { Length: > 0 })
{ {
builder.Where($"({BuildQualityWhereClause(qualities)})"); builder.Where($"({BuildQualityWhereClause(qualities)})");