diff --git a/Jellyfin.Server.Implementations/Item/MediaStreamRepository.cs b/Jellyfin.Server.Implementations/Item/MediaStreamRepository.cs index 797a932ef1..c6b9f9ddf9 100644 --- a/Jellyfin.Server.Implementations/Item/MediaStreamRepository.cs +++ b/Jellyfin.Server.Implementations/Item/MediaStreamRepository.cs @@ -13,17 +13,31 @@ using Microsoft.EntityFrameworkCore; namespace Jellyfin.Server.Implementations.Item; /// -/// Initializes a new instance of the class. +/// Repository for obtaining MediaStreams. /// -/// The EFCore db factory. -/// The Application host. -/// The Localisation Provider. -public class MediaStreamRepository(IDbContextFactory dbProvider, IServerApplicationHost serverApplicationHost, ILocalizationManager localization) : IMediaStreamRepository +public class MediaStreamRepository : IMediaStreamRepository { + private readonly IDbContextFactory _dbProvider; + private readonly IServerApplicationHost _serverApplicationHost; + private readonly ILocalizationManager _localization; + + /// + /// Initializes a new instance of the class. + /// + /// The EFCore db factory. + /// The Application host. + /// The Localisation Provider. + public MediaStreamRepository(IDbContextFactory dbProvider, IServerApplicationHost serverApplicationHost, ILocalizationManager localization) + { + _dbProvider = dbProvider; + _serverApplicationHost = serverApplicationHost; + _localization = localization; + } + /// public void SaveMediaStreams(Guid id, IReadOnlyList streams, CancellationToken cancellationToken) { - using var context = dbProvider.CreateDbContext(); + using var context = _dbProvider.CreateDbContext(); using var transaction = context.Database.BeginTransaction(); context.MediaStreamInfos.Where(e => e.ItemId.Equals(id)).ExecuteDelete(); @@ -36,7 +50,7 @@ public class MediaStreamRepository(IDbContextFactory dbProvid /// public IReadOnlyList GetMediaStreams(MediaStreamQuery filter) { - using var context = dbProvider.CreateDbContext(); + using var context = _dbProvider.CreateDbContext(); return TranslateQuery(context.MediaStreamInfos.AsNoTracking(), filter).AsEnumerable().Select(Map).ToImmutableArray(); } @@ -47,7 +61,7 @@ public class MediaStreamRepository(IDbContextFactory dbProvid return null; } - return serverApplicationHost.ReverseVirtualPath(path); + return _serverApplicationHost.ReverseVirtualPath(path); } private string? RestorePath(string? path) @@ -57,7 +71,7 @@ public class MediaStreamRepository(IDbContextFactory dbProvid return null; } - return serverApplicationHost.ExpandVirtualPath(path); + return _serverApplicationHost.ExpandVirtualPath(path); } private IQueryable TranslateQuery(IQueryable query, MediaStreamQuery filter) @@ -131,14 +145,14 @@ public class MediaStreamRepository(IDbContextFactory dbProvid if (dto.Type is MediaStreamType.Audio or MediaStreamType.Subtitle) { - dto.LocalizedDefault = localization.GetLocalizedString("Default"); - dto.LocalizedExternal = localization.GetLocalizedString("External"); + dto.LocalizedDefault = _localization.GetLocalizedString("Default"); + dto.LocalizedExternal = _localization.GetLocalizedString("External"); if (dto.Type is MediaStreamType.Subtitle) { - dto.LocalizedUndefined = localization.GetLocalizedString("Undefined"); - dto.LocalizedForced = localization.GetLocalizedString("Forced"); - dto.LocalizedHearingImpaired = localization.GetLocalizedString("HearingImpaired"); + dto.LocalizedUndefined = _localization.GetLocalizedString("Undefined"); + dto.LocalizedForced = _localization.GetLocalizedString("Forced"); + dto.LocalizedHearingImpaired = _localization.GetLocalizedString("HearingImpaired"); } }