|
|
|
@ -15,6 +15,7 @@ public class SearchRepository(IDbContextFactory<TvContext> dbContextFactory) : I |
|
|
|
|
|
|
|
|
|
|
|
var baseItem = await dbContext.MediaItems |
|
|
|
var baseItem = await dbContext.MediaItems |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
|
|
|
|
|
|
|
|
if (baseItem is null) |
|
|
|
if (baseItem is null) |
|
|
|
@ -27,60 +28,70 @@ public class SearchRepository(IDbContextFactory<TvContext> dbContextFactory) : I |
|
|
|
case Movie: |
|
|
|
case Movie: |
|
|
|
return await dbContext.Movies |
|
|
|
return await dbContext.Movies |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
case Episode: |
|
|
|
case Episode: |
|
|
|
return await dbContext.Episodes |
|
|
|
return await dbContext.Episodes |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
case Season: |
|
|
|
case Season: |
|
|
|
return await dbContext.Seasons |
|
|
|
return await dbContext.Seasons |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
case Show: |
|
|
|
case Show: |
|
|
|
return await dbContext.Shows |
|
|
|
return await dbContext.Shows |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
case MusicVideo: |
|
|
|
case MusicVideo: |
|
|
|
return await dbContext.MusicVideos |
|
|
|
return await dbContext.MusicVideos |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
case Artist: |
|
|
|
case Artist: |
|
|
|
return await dbContext.Artists |
|
|
|
return await dbContext.Artists |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
case OtherVideo: |
|
|
|
case OtherVideo: |
|
|
|
return await dbContext.OtherVideos |
|
|
|
return await dbContext.OtherVideos |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
case Song: |
|
|
|
case Song: |
|
|
|
return await dbContext.Songs |
|
|
|
return await dbContext.Songs |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
case Image: |
|
|
|
case Image: |
|
|
|
return await dbContext.Images |
|
|
|
return await dbContext.Images |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
case RemoteStream: |
|
|
|
case RemoteStream: |
|
|
|
return await dbContext.RemoteStreams |
|
|
|
return await dbContext.RemoteStreams |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
.SingleOrDefaultAsync(mi => mi.Id == id, cancellationToken); |
|
|
|
@ -225,6 +236,7 @@ public class SearchRepository(IDbContextFactory<TvContext> dbContextFactory) : I |
|
|
|
|
|
|
|
|
|
|
|
ConfiguredCancelableAsyncEnumerable<Movie> movies = dbContext.Movies |
|
|
|
ConfiguredCancelableAsyncEnumerable<Movie> movies = dbContext.Movies |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
@ -242,6 +254,7 @@ public class SearchRepository(IDbContextFactory<TvContext> dbContextFactory) : I |
|
|
|
|
|
|
|
|
|
|
|
ConfiguredCancelableAsyncEnumerable<Show> shows = dbContext.Shows |
|
|
|
ConfiguredCancelableAsyncEnumerable<Show> shows = dbContext.Shows |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
@ -259,6 +272,7 @@ public class SearchRepository(IDbContextFactory<TvContext> dbContextFactory) : I |
|
|
|
|
|
|
|
|
|
|
|
ConfiguredCancelableAsyncEnumerable<Season> seasons = dbContext.Seasons |
|
|
|
ConfiguredCancelableAsyncEnumerable<Season> seasons = dbContext.Seasons |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
@ -276,6 +290,7 @@ public class SearchRepository(IDbContextFactory<TvContext> dbContextFactory) : I |
|
|
|
|
|
|
|
|
|
|
|
ConfiguredCancelableAsyncEnumerable<Episode> episodes = dbContext.Episodes |
|
|
|
ConfiguredCancelableAsyncEnumerable<Episode> episodes = dbContext.Episodes |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
@ -294,6 +309,7 @@ public class SearchRepository(IDbContextFactory<TvContext> dbContextFactory) : I |
|
|
|
|
|
|
|
|
|
|
|
ConfiguredCancelableAsyncEnumerable<MusicVideo> musicVideos = dbContext.MusicVideos |
|
|
|
ConfiguredCancelableAsyncEnumerable<MusicVideo> musicVideos = dbContext.MusicVideos |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
@ -311,6 +327,7 @@ public class SearchRepository(IDbContextFactory<TvContext> dbContextFactory) : I |
|
|
|
|
|
|
|
|
|
|
|
ConfiguredCancelableAsyncEnumerable<Artist> artists = dbContext.Artists |
|
|
|
ConfiguredCancelableAsyncEnumerable<Artist> artists = dbContext.Artists |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
@ -329,6 +346,7 @@ public class SearchRepository(IDbContextFactory<TvContext> dbContextFactory) : I |
|
|
|
|
|
|
|
|
|
|
|
ConfiguredCancelableAsyncEnumerable<OtherVideo> otherVideos = dbContext.OtherVideos |
|
|
|
ConfiguredCancelableAsyncEnumerable<OtherVideo> otherVideos = dbContext.OtherVideos |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
@ -346,6 +364,7 @@ public class SearchRepository(IDbContextFactory<TvContext> dbContextFactory) : I |
|
|
|
|
|
|
|
|
|
|
|
ConfiguredCancelableAsyncEnumerable<Song> songs = dbContext.Songs |
|
|
|
ConfiguredCancelableAsyncEnumerable<Song> songs = dbContext.Songs |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
@ -363,6 +382,7 @@ public class SearchRepository(IDbContextFactory<TvContext> dbContextFactory) : I |
|
|
|
|
|
|
|
|
|
|
|
ConfiguredCancelableAsyncEnumerable<Image> images = dbContext.Images |
|
|
|
ConfiguredCancelableAsyncEnumerable<Image> images = dbContext.Images |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
@ -381,6 +401,7 @@ public class SearchRepository(IDbContextFactory<TvContext> dbContextFactory) : I |
|
|
|
|
|
|
|
|
|
|
|
ConfiguredCancelableAsyncEnumerable<RemoteStream> remoteStreams = dbContext.RemoteStreams |
|
|
|
ConfiguredCancelableAsyncEnumerable<RemoteStream> remoteStreams = dbContext.RemoteStreams |
|
|
|
.AsNoTracking() |
|
|
|
.AsNoTracking() |
|
|
|
|
|
|
|
.TagWithCallSite() |
|
|
|
.IncludeForSearch() |
|
|
|
.IncludeForSearch() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsSplitQuery() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
.AsAsyncEnumerable() |
|
|
|
|