mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-07-09 03:04:20 -04:00
Removing usless IDisposable patterns
This commit is contained in:
parent
540a3c27de
commit
22b9f3240f
@ -12,7 +12,7 @@ namespace Kyoo.Controllers
|
||||
/// <summary>
|
||||
/// An interface to interract with the database. Every repository is mapped through here.
|
||||
/// </summary>
|
||||
public interface ILibraryManager : IDisposable, IAsyncDisposable
|
||||
public interface ILibraryManager
|
||||
{
|
||||
/// <summary>
|
||||
/// Get the repository corresponding to the T item.
|
||||
|
@ -109,7 +109,7 @@ namespace Kyoo.Controllers
|
||||
/// <summary>
|
||||
/// A base class for repositories. Every service implementing this will be handled by the <see cref="LibraryManager"/>.
|
||||
/// </summary>
|
||||
public interface IBaseRepository : IDisposable, IAsyncDisposable
|
||||
public interface IBaseRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// The type for witch this repository is responsible or null if non applicable.
|
||||
@ -119,7 +119,6 @@ namespace Kyoo.Controllers
|
||||
|
||||
/// <summary>
|
||||
/// A common repository for every resources.
|
||||
/// It implement's <see cref="IBaseRepository"/> and <see cref="IDisposable"/>/<see cref="IAsyncDisposable"/>.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">The resource's type that this repository manage.</typeparam>
|
||||
public interface IRepository<T> : IBaseRepository where T : class, IResource
|
||||
|
@ -59,20 +59,6 @@ namespace Kyoo.Controllers
|
||||
GenreRepository = GetRepository<Genre>() as IGenreRepository;
|
||||
ProviderRepository = GetRepository<Provider>() as IProviderRepository;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void Dispose()
|
||||
{
|
||||
foreach (IBaseRepository repo in _repositories)
|
||||
repo.Dispose();
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async ValueTask DisposeAsync()
|
||||
{
|
||||
await Task.WhenAll(_repositories.Select(x => x.DisposeAsync().AsTask()));
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public IRepository<T> GetRepository<T>()
|
||||
|
@ -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>();
|
||||
ILibraryManager library = context.HttpContext.RequestServices.GetService<ILibraryManager>();
|
||||
ICollection<string> fields = (ICollection<string>)context.HttpContext.Items["fields"];
|
||||
Type pageType = Utility.GetGenericDefinition(result.DeclaredType, typeof(Page<>));
|
||||
|
||||
|
@ -15,10 +15,6 @@ namespace Kyoo.Controllers
|
||||
/// </summary>
|
||||
public class EpisodeRepository : LocalRepository<Episode>, IEpisodeRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Has this instance been disposed and should not handle requests?
|
||||
/// </summary>
|
||||
private bool _disposed;
|
||||
/// <summary>
|
||||
/// The databse handle
|
||||
/// </summary>
|
||||
@ -58,30 +54,7 @@ namespace Kyoo.Controllers
|
||||
_shows = shows;
|
||||
_tracks = tracks;
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
_database.Dispose();
|
||||
_providers.Dispose();
|
||||
_shows.Dispose();
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
await _database.DisposeAsync();
|
||||
await _providers.DisposeAsync();
|
||||
await _shows.DisposeAsync();
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
public override async Task<Episode> GetOrDefault(int id)
|
||||
|
@ -15,10 +15,6 @@ namespace Kyoo.Controllers
|
||||
/// </summary>
|
||||
public class LibraryItemRepository : LocalRepository<LibraryItem>, ILibraryItemRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Has this instance been disposed and should not handle requests?
|
||||
/// </summary>
|
||||
private bool _disposed;
|
||||
/// <summary>
|
||||
/// The database handle
|
||||
/// </summary>
|
||||
@ -61,35 +57,7 @@ namespace Kyoo.Controllers
|
||||
_shows = new Lazy<IShowRepository>(services.GetRequiredService<IShowRepository>);
|
||||
_collections = new Lazy<ICollectionRepository>(services.GetRequiredService<ICollectionRepository>);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
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);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
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();
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override async Task<LibraryItem> GetOrDefault(int id)
|
||||
|
@ -13,10 +13,6 @@ namespace Kyoo.Controllers
|
||||
/// </summary>
|
||||
public class LibraryRepository : LocalRepository<Library>, ILibraryRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Has this instance been disposed and should not handle requests?
|
||||
/// </summary>
|
||||
private bool _disposed;
|
||||
/// <summary>
|
||||
/// The database handle
|
||||
/// </summary>
|
||||
@ -41,28 +37,8 @@ namespace Kyoo.Controllers
|
||||
_database = database;
|
||||
_providers = providers;
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
_database.Dispose();
|
||||
_providers.Dispose();
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
await _database.DisposeAsync();
|
||||
await _providers.DisposeAsync();
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override async Task<ICollection<Library>> Search(string query)
|
||||
{
|
||||
|
@ -15,10 +15,6 @@ namespace Kyoo.Controllers
|
||||
/// </summary>
|
||||
public class PeopleRepository : LocalRepository<People>, IPeopleRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Has this instance been disposed and should not handle requests?
|
||||
/// </summary>
|
||||
private bool _disposed;
|
||||
/// <summary>
|
||||
/// The database handle
|
||||
/// </summary>
|
||||
@ -50,32 +46,7 @@ namespace Kyoo.Controllers
|
||||
_providers = providers;
|
||||
_shows = new Lazy<IShowRepository>(services.GetRequiredService<IShowRepository>);
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
_database.Dispose();
|
||||
_providers.Dispose();
|
||||
if (_shows.IsValueCreated)
|
||||
_shows.Value.Dispose();
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
await _database.DisposeAsync();
|
||||
await _providers.DisposeAsync();
|
||||
if (_shows.IsValueCreated)
|
||||
await _shows.Value.DisposeAsync();
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
public override async Task<ICollection<People>> Search(string query)
|
||||
|
@ -16,10 +16,6 @@ namespace Kyoo.Controllers
|
||||
/// </summary>
|
||||
public class SeasonRepository : LocalRepository<Season>, ISeasonRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Has this instance been disposed and should not handle requests?
|
||||
/// </summary>
|
||||
private bool _disposed;
|
||||
/// <summary>
|
||||
/// The database handle
|
||||
/// </summary>
|
||||
@ -60,34 +56,7 @@ namespace Kyoo.Controllers
|
||||
_shows = shows;
|
||||
_episodes = new Lazy<IEpisodeRepository>(services.GetRequiredService<IEpisodeRepository>);
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
_database.Dispose();
|
||||
_providers.Dispose();
|
||||
_shows.Dispose();
|
||||
if (_episodes.IsValueCreated)
|
||||
_episodes.Value.Dispose();
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
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();
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override async Task<Season> Get(int id)
|
||||
|
@ -14,10 +14,6 @@ namespace Kyoo.Controllers
|
||||
/// </summary>
|
||||
public class ShowRepository : LocalRepository<Show>, IShowRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Has this instance been disposed and should not handle requests?
|
||||
/// </summary>
|
||||
private bool _disposed;
|
||||
/// <summary>
|
||||
/// The databse handle
|
||||
/// </summary>
|
||||
@ -75,41 +71,7 @@ namespace Kyoo.Controllers
|
||||
_seasons = new Lazy<ISeasonRepository>(services.GetRequiredService<ISeasonRepository>);
|
||||
_episodes = new Lazy<IEpisodeRepository>(services.GetRequiredService<IEpisodeRepository>);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
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);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
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();
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
public override async Task<ICollection<Show>> Search(string query)
|
||||
|
@ -32,7 +32,7 @@ namespace Kyoo.Controllers
|
||||
public async Task<IEnumerable<string>> GetPossibleParameters()
|
||||
{
|
||||
using IServiceScope serviceScope = _serviceProvider.CreateScope();
|
||||
await using ILibraryManager libraryManager = serviceScope.ServiceProvider.GetService<ILibraryManager>();
|
||||
ILibraryManager libraryManager = serviceScope.ServiceProvider.GetService<ILibraryManager>();
|
||||
return (await libraryManager!.GetAll<Library>()).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>();
|
||||
ILibraryManager libraryManager = serviceScope.ServiceProvider.GetService<ILibraryManager>();
|
||||
|
||||
foreach (Show show in await libraryManager!.GetAll<Show>())
|
||||
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>();
|
||||
ILibraryManager libraryManager = serviceScope.ServiceProvider.GetService<ILibraryManager>();
|
||||
|
||||
string patern = _config.GetValue<string>("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>();
|
||||
ILibraryManager libraryManager = serviceScope.ServiceProvider.GetService<ILibraryManager>();
|
||||
|
||||
string patern = _config.GetValue<string>("regex");
|
||||
Regex regex = new(patern, RegexOptions.IgnoreCase);
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user