diff --git a/Kyoo.Common/Controllers/ILibraryManager.cs b/Kyoo.Common/Controllers/ILibraryManager.cs index ae3c321b..d15987de 100644 --- a/Kyoo.Common/Controllers/ILibraryManager.cs +++ b/Kyoo.Common/Controllers/ILibraryManager.cs @@ -12,7 +12,7 @@ namespace Kyoo.Controllers /// /// An interface to interract with the database. Every repository is mapped through here. /// - public interface ILibraryManager : IDisposable, IAsyncDisposable + public interface ILibraryManager { /// /// Get the repository corresponding to the T item. diff --git a/Kyoo.Common/Controllers/IRepository.cs b/Kyoo.Common/Controllers/IRepository.cs index 71a6db8b..2ed0b19a 100644 --- a/Kyoo.Common/Controllers/IRepository.cs +++ b/Kyoo.Common/Controllers/IRepository.cs @@ -109,7 +109,7 @@ namespace Kyoo.Controllers /// /// A base class for repositories. Every service implementing this will be handled by the . /// - public interface IBaseRepository : IDisposable, IAsyncDisposable + public interface IBaseRepository { /// /// The type for witch this repository is responsible or null if non applicable. @@ -119,7 +119,6 @@ namespace Kyoo.Controllers /// /// A common repository for every resources. - /// It implement's and /. /// /// The resource's type that this repository manage. public interface IRepository : IBaseRepository where T : class, IResource diff --git a/Kyoo.Common/Controllers/Implementations/LibraryManager.cs b/Kyoo.Common/Controllers/Implementations/LibraryManager.cs index de35db92..2fb16735 100644 --- a/Kyoo.Common/Controllers/Implementations/LibraryManager.cs +++ b/Kyoo.Common/Controllers/Implementations/LibraryManager.cs @@ -59,20 +59,6 @@ namespace Kyoo.Controllers GenreRepository = GetRepository() as IGenreRepository; ProviderRepository = GetRepository() as IProviderRepository; } - - /// - public void Dispose() - { - foreach (IBaseRepository repo in _repositories) - repo.Dispose(); - GC.SuppressFinalize(this); - } - - /// - public async ValueTask DisposeAsync() - { - await Task.WhenAll(_repositories.Select(x => x.DisposeAsync().AsTask())); - } /// public IRepository GetRepository() diff --git a/Kyoo.CommonAPI/ResourceViewAttribute.cs b/Kyoo.CommonAPI/ResourceViewAttribute.cs index fa177342..06198663 100644 --- a/Kyoo.CommonAPI/ResourceViewAttribute.cs +++ b/Kyoo.CommonAPI/ResourceViewAttribute.cs @@ -10,7 +10,6 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; namespace Kyoo.CommonApi { @@ -77,7 +76,7 @@ namespace Kyoo.CommonApi if (result.DeclaredType == null) return; - await using ILibraryManager library = context.HttpContext.RequestServices.GetService(); + ILibraryManager library = context.HttpContext.RequestServices.GetService(); ICollection fields = (ICollection)context.HttpContext.Items["fields"]; Type pageType = Utility.GetGenericDefinition(result.DeclaredType, typeof(Page<>)); diff --git a/Kyoo/Controllers/Repositories/EpisodeRepository.cs b/Kyoo/Controllers/Repositories/EpisodeRepository.cs index 032dff38..1af6c485 100644 --- a/Kyoo/Controllers/Repositories/EpisodeRepository.cs +++ b/Kyoo/Controllers/Repositories/EpisodeRepository.cs @@ -15,10 +15,6 @@ namespace Kyoo.Controllers /// public class EpisodeRepository : LocalRepository, IEpisodeRepository { - /// - /// Has this instance been disposed and should not handle requests? - /// - private bool _disposed; /// /// The databse handle /// @@ -58,30 +54,7 @@ namespace Kyoo.Controllers _shows = shows; _tracks = tracks; } - - - /// - public override void Dispose() - { - if (_disposed) - return; - _disposed = true; - _database.Dispose(); - _providers.Dispose(); - _shows.Dispose(); - GC.SuppressFinalize(this); - } - - /// - public override async ValueTask DisposeAsync() - { - if (_disposed) - return; - _disposed = true; - await _database.DisposeAsync(); - await _providers.DisposeAsync(); - await _shows.DisposeAsync(); - } + /// public override async Task GetOrDefault(int id) diff --git a/Kyoo/Controllers/Repositories/LibraryItemRepository.cs b/Kyoo/Controllers/Repositories/LibraryItemRepository.cs index 44fd81d3..43afd407 100644 --- a/Kyoo/Controllers/Repositories/LibraryItemRepository.cs +++ b/Kyoo/Controllers/Repositories/LibraryItemRepository.cs @@ -15,10 +15,6 @@ namespace Kyoo.Controllers /// public class LibraryItemRepository : LocalRepository, ILibraryItemRepository { - /// - /// Has this instance been disposed and should not handle requests? - /// - private bool _disposed; /// /// The database handle /// @@ -61,35 +57,7 @@ namespace Kyoo.Controllers _shows = new Lazy(services.GetRequiredService); _collections = new Lazy(services.GetRequiredService); } - - /// - public override void Dispose() - { - if (_disposed) - return; - _disposed = true; - _database.Dispose(); - _providers.Dispose(); - if (_shows.IsValueCreated) - _shows.Value.Dispose(); - if (_collections.IsValueCreated) - _collections.Value.Dispose(); - GC.SuppressFinalize(this); - } - /// - public override async ValueTask DisposeAsync() - { - if (_disposed) - return; - _disposed = true; - await _database.DisposeAsync(); - await _providers.DisposeAsync(); - if (_shows.IsValueCreated) - await _shows.Value.DisposeAsync(); - if (_collections.IsValueCreated) - await _collections.Value.DisposeAsync(); - } /// public override async Task GetOrDefault(int id) diff --git a/Kyoo/Controllers/Repositories/LibraryRepository.cs b/Kyoo/Controllers/Repositories/LibraryRepository.cs index f61e4445..b4cab3b9 100644 --- a/Kyoo/Controllers/Repositories/LibraryRepository.cs +++ b/Kyoo/Controllers/Repositories/LibraryRepository.cs @@ -13,10 +13,6 @@ namespace Kyoo.Controllers /// public class LibraryRepository : LocalRepository, ILibraryRepository { - /// - /// Has this instance been disposed and should not handle requests? - /// - private bool _disposed; /// /// The database handle /// @@ -41,28 +37,8 @@ namespace Kyoo.Controllers _database = database; _providers = providers; } + - /// - public override void Dispose() - { - if (_disposed) - return; - _disposed = true; - _database.Dispose(); - _providers.Dispose(); - GC.SuppressFinalize(this); - } - - /// - public override async ValueTask DisposeAsync() - { - if (_disposed) - return; - _disposed = true; - await _database.DisposeAsync(); - await _providers.DisposeAsync(); - } - /// public override async Task> Search(string query) { diff --git a/Kyoo/Controllers/Repositories/PeopleRepository.cs b/Kyoo/Controllers/Repositories/PeopleRepository.cs index 7d1c870e..526a3286 100644 --- a/Kyoo/Controllers/Repositories/PeopleRepository.cs +++ b/Kyoo/Controllers/Repositories/PeopleRepository.cs @@ -15,10 +15,6 @@ namespace Kyoo.Controllers /// public class PeopleRepository : LocalRepository, IPeopleRepository { - /// - /// Has this instance been disposed and should not handle requests? - /// - private bool _disposed; /// /// The database handle /// @@ -50,32 +46,7 @@ namespace Kyoo.Controllers _providers = providers; _shows = new Lazy(services.GetRequiredService); } - - - /// - public override void Dispose() - { - if (_disposed) - return; - _disposed = true; - _database.Dispose(); - _providers.Dispose(); - if (_shows.IsValueCreated) - _shows.Value.Dispose(); - GC.SuppressFinalize(this); - } - - /// - public override async ValueTask DisposeAsync() - { - if (_disposed) - return; - _disposed = true; - await _database.DisposeAsync(); - await _providers.DisposeAsync(); - if (_shows.IsValueCreated) - await _shows.Value.DisposeAsync(); - } + /// public override async Task> Search(string query) diff --git a/Kyoo/Controllers/Repositories/SeasonRepository.cs b/Kyoo/Controllers/Repositories/SeasonRepository.cs index a2dce413..e35042ad 100644 --- a/Kyoo/Controllers/Repositories/SeasonRepository.cs +++ b/Kyoo/Controllers/Repositories/SeasonRepository.cs @@ -16,10 +16,6 @@ namespace Kyoo.Controllers /// public class SeasonRepository : LocalRepository, ISeasonRepository { - /// - /// Has this instance been disposed and should not handle requests? - /// - private bool _disposed; /// /// The database handle /// @@ -60,34 +56,7 @@ namespace Kyoo.Controllers _shows = shows; _episodes = new Lazy(services.GetRequiredService); } - - - /// - public override void Dispose() - { - if (_disposed) - return; - _disposed = true; - _database.Dispose(); - _providers.Dispose(); - _shows.Dispose(); - if (_episodes.IsValueCreated) - _episodes.Value.Dispose(); - GC.SuppressFinalize(this); - } - - /// - public override async ValueTask DisposeAsync() - { - if (_disposed) - return; - _disposed = true; - await _database.DisposeAsync(); - await _providers.DisposeAsync(); - await _shows.DisposeAsync(); - if (_episodes.IsValueCreated) - await _episodes.Value.DisposeAsync(); - } + /// public override async Task Get(int id) diff --git a/Kyoo/Controllers/Repositories/ShowRepository.cs b/Kyoo/Controllers/Repositories/ShowRepository.cs index e94419c2..1129cd07 100644 --- a/Kyoo/Controllers/Repositories/ShowRepository.cs +++ b/Kyoo/Controllers/Repositories/ShowRepository.cs @@ -14,10 +14,6 @@ namespace Kyoo.Controllers /// public class ShowRepository : LocalRepository, IShowRepository { - /// - /// Has this instance been disposed and should not handle requests? - /// - private bool _disposed; /// /// The databse handle /// @@ -75,41 +71,7 @@ namespace Kyoo.Controllers _seasons = new Lazy(services.GetRequiredService); _episodes = new Lazy(services.GetRequiredService); } - - /// - public override void Dispose() - { - if (_disposed) - return; - _disposed = true; - _database.Dispose(); - _studios.Dispose(); - _people.Dispose(); - _genres.Dispose(); - _providers.Dispose(); - if (_seasons.IsValueCreated) - _seasons.Value.Dispose(); - if (_episodes.IsValueCreated) - _episodes.Value.Dispose(); - GC.SuppressFinalize(this); - } - - /// - public override async ValueTask DisposeAsync() - { - if (_disposed) - return; - _disposed = true; - await _database.DisposeAsync(); - await _studios.DisposeAsync(); - await _people.DisposeAsync(); - await _genres.DisposeAsync(); - await _providers.DisposeAsync(); - if (_seasons.IsValueCreated) - await _seasons.Value.DisposeAsync(); - if (_episodes.IsValueCreated) - await _episodes.Value.DisposeAsync(); - } + /// public override async Task> Search(string query) diff --git a/Kyoo/Tasks/Crawler.cs b/Kyoo/Tasks/Crawler.cs index 2634a3bb..47c931c9 100644 --- a/Kyoo/Tasks/Crawler.cs +++ b/Kyoo/Tasks/Crawler.cs @@ -32,7 +32,7 @@ namespace Kyoo.Controllers public async Task> GetPossibleParameters() { using IServiceScope serviceScope = _serviceProvider.CreateScope(); - await using ILibraryManager libraryManager = serviceScope.ServiceProvider.GetService(); + ILibraryManager libraryManager = serviceScope.ServiceProvider.GetService(); return (await libraryManager!.GetAll()).Select(x => x.Slug); } @@ -56,7 +56,7 @@ namespace Kyoo.Controllers _parallelTasks = 30; using IServiceScope serviceScope = _serviceProvider.CreateScope(); - await using ILibraryManager libraryManager = serviceScope.ServiceProvider.GetService(); + ILibraryManager libraryManager = serviceScope.ServiceProvider.GetService(); foreach (Show show in await libraryManager!.GetAll()) if (!Directory.Exists(show.Path)) @@ -149,7 +149,7 @@ namespace Kyoo.Controllers if (token.IsCancellationRequested || path.Split(Path.DirectorySeparatorChar).Contains("Subtitles")) return; using IServiceScope serviceScope = _serviceProvider.CreateScope(); - await using ILibraryManager libraryManager = serviceScope.ServiceProvider.GetService(); + ILibraryManager libraryManager = serviceScope.ServiceProvider.GetService(); string patern = _config.GetValue("subtitleRegex"); Regex regex = new(patern, RegexOptions.IgnoreCase); @@ -196,7 +196,7 @@ namespace Kyoo.Controllers try { using IServiceScope serviceScope = _serviceProvider.CreateScope(); - await using ILibraryManager libraryManager = serviceScope.ServiceProvider.GetService(); + ILibraryManager libraryManager = serviceScope.ServiceProvider.GetService(); string patern = _config.GetValue("regex"); Regex regex = new(patern, RegexOptions.IgnoreCase); diff --git a/Kyoo/Tasks/ExtractMetadata.cs b/Kyoo/Tasks/ExtractMetadata.cs index d9f47e43..d5513c97 100644 --- a/Kyoo/Tasks/ExtractMetadata.cs +++ b/Kyoo/Tasks/ExtractMetadata.cs @@ -64,8 +64,6 @@ namespace Kyoo.Tasks await ExtractEpisode(episode, thumbs, subs); break; } - - await _library!.DisposeAsync(); } private async Task ExtractShow(Show show, bool thumbs, bool subs, CancellationToken token)