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>
|
/// <summary>
|
||||||
/// An interface to interract with the database. Every repository is mapped through here.
|
/// An interface to interract with the database. Every repository is mapped through here.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface ILibraryManager : IDisposable, IAsyncDisposable
|
public interface ILibraryManager
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get the repository corresponding to the T item.
|
/// Get the repository corresponding to the T item.
|
||||||
|
@ -109,7 +109,7 @@ namespace Kyoo.Controllers
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// A base class for repositories. Every service implementing this will be handled by the <see cref="LibraryManager"/>.
|
/// A base class for repositories. Every service implementing this will be handled by the <see cref="LibraryManager"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IBaseRepository : IDisposable, IAsyncDisposable
|
public interface IBaseRepository
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The type for witch this repository is responsible or null if non applicable.
|
/// The type for witch this repository is responsible or null if non applicable.
|
||||||
@ -119,7 +119,6 @@ namespace Kyoo.Controllers
|
|||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A common repository for every resources.
|
/// A common repository for every resources.
|
||||||
/// It implement's <see cref="IBaseRepository"/> and <see cref="IDisposable"/>/<see cref="IAsyncDisposable"/>.
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T">The resource's type that this repository manage.</typeparam>
|
/// <typeparam name="T">The resource's type that this repository manage.</typeparam>
|
||||||
public interface IRepository<T> : IBaseRepository where T : class, IResource
|
public interface IRepository<T> : IBaseRepository where T : class, IResource
|
||||||
|
@ -59,20 +59,6 @@ namespace Kyoo.Controllers
|
|||||||
GenreRepository = GetRepository<Genre>() as IGenreRepository;
|
GenreRepository = GetRepository<Genre>() as IGenreRepository;
|
||||||
ProviderRepository = GetRepository<Provider>() as IProviderRepository;
|
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 />
|
/// <inheritdoc />
|
||||||
public IRepository<T> GetRepository<T>()
|
public IRepository<T> GetRepository<T>()
|
||||||
|
@ -10,7 +10,6 @@ using Microsoft.AspNetCore.Mvc;
|
|||||||
using Microsoft.AspNetCore.Mvc.Controllers;
|
using Microsoft.AspNetCore.Mvc.Controllers;
|
||||||
using Microsoft.AspNetCore.Mvc.Filters;
|
using Microsoft.AspNetCore.Mvc.Filters;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Options;
|
|
||||||
|
|
||||||
namespace Kyoo.CommonApi
|
namespace Kyoo.CommonApi
|
||||||
{
|
{
|
||||||
@ -77,7 +76,7 @@ namespace Kyoo.CommonApi
|
|||||||
if (result.DeclaredType == null)
|
if (result.DeclaredType == null)
|
||||||
return;
|
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"];
|
ICollection<string> fields = (ICollection<string>)context.HttpContext.Items["fields"];
|
||||||
Type pageType = Utility.GetGenericDefinition(result.DeclaredType, typeof(Page<>));
|
Type pageType = Utility.GetGenericDefinition(result.DeclaredType, typeof(Page<>));
|
||||||
|
|
||||||
|
@ -15,10 +15,6 @@ namespace Kyoo.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class EpisodeRepository : LocalRepository<Episode>, IEpisodeRepository
|
public class EpisodeRepository : LocalRepository<Episode>, IEpisodeRepository
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Has this instance been disposed and should not handle requests?
|
|
||||||
/// </summary>
|
|
||||||
private bool _disposed;
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The databse handle
|
/// The databse handle
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -58,30 +54,7 @@ namespace Kyoo.Controllers
|
|||||||
_shows = shows;
|
_shows = shows;
|
||||||
_tracks = tracks;
|
_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 />
|
/// <inheritdoc />
|
||||||
public override async Task<Episode> GetOrDefault(int id)
|
public override async Task<Episode> GetOrDefault(int id)
|
||||||
|
@ -15,10 +15,6 @@ namespace Kyoo.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class LibraryItemRepository : LocalRepository<LibraryItem>, ILibraryItemRepository
|
public class LibraryItemRepository : LocalRepository<LibraryItem>, ILibraryItemRepository
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Has this instance been disposed and should not handle requests?
|
|
||||||
/// </summary>
|
|
||||||
private bool _disposed;
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The database handle
|
/// The database handle
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -61,35 +57,7 @@ namespace Kyoo.Controllers
|
|||||||
_shows = new Lazy<IShowRepository>(services.GetRequiredService<IShowRepository>);
|
_shows = new Lazy<IShowRepository>(services.GetRequiredService<IShowRepository>);
|
||||||
_collections = new Lazy<ICollectionRepository>(services.GetRequiredService<ICollectionRepository>);
|
_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 />
|
/// <inheritdoc />
|
||||||
public override async Task<LibraryItem> GetOrDefault(int id)
|
public override async Task<LibraryItem> GetOrDefault(int id)
|
||||||
|
@ -13,10 +13,6 @@ namespace Kyoo.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class LibraryRepository : LocalRepository<Library>, ILibraryRepository
|
public class LibraryRepository : LocalRepository<Library>, ILibraryRepository
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Has this instance been disposed and should not handle requests?
|
|
||||||
/// </summary>
|
|
||||||
private bool _disposed;
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The database handle
|
/// The database handle
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -41,28 +37,8 @@ namespace Kyoo.Controllers
|
|||||||
_database = database;
|
_database = database;
|
||||||
_providers = providers;
|
_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 />
|
/// <inheritdoc />
|
||||||
public override async Task<ICollection<Library>> Search(string query)
|
public override async Task<ICollection<Library>> Search(string query)
|
||||||
{
|
{
|
||||||
|
@ -15,10 +15,6 @@ namespace Kyoo.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class PeopleRepository : LocalRepository<People>, IPeopleRepository
|
public class PeopleRepository : LocalRepository<People>, IPeopleRepository
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Has this instance been disposed and should not handle requests?
|
|
||||||
/// </summary>
|
|
||||||
private bool _disposed;
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The database handle
|
/// The database handle
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -50,32 +46,7 @@ namespace Kyoo.Controllers
|
|||||||
_providers = providers;
|
_providers = providers;
|
||||||
_shows = new Lazy<IShowRepository>(services.GetRequiredService<IShowRepository>);
|
_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 />
|
/// <inheritdoc />
|
||||||
public override async Task<ICollection<People>> Search(string query)
|
public override async Task<ICollection<People>> Search(string query)
|
||||||
|
@ -16,10 +16,6 @@ namespace Kyoo.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class SeasonRepository : LocalRepository<Season>, ISeasonRepository
|
public class SeasonRepository : LocalRepository<Season>, ISeasonRepository
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Has this instance been disposed and should not handle requests?
|
|
||||||
/// </summary>
|
|
||||||
private bool _disposed;
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The database handle
|
/// The database handle
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -60,34 +56,7 @@ namespace Kyoo.Controllers
|
|||||||
_shows = shows;
|
_shows = shows;
|
||||||
_episodes = new Lazy<IEpisodeRepository>(services.GetRequiredService<IEpisodeRepository>);
|
_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/>
|
/// <inheritdoc/>
|
||||||
public override async Task<Season> Get(int id)
|
public override async Task<Season> Get(int id)
|
||||||
|
@ -14,10 +14,6 @@ namespace Kyoo.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class ShowRepository : LocalRepository<Show>, IShowRepository
|
public class ShowRepository : LocalRepository<Show>, IShowRepository
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Has this instance been disposed and should not handle requests?
|
|
||||||
/// </summary>
|
|
||||||
private bool _disposed;
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The databse handle
|
/// The databse handle
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -75,41 +71,7 @@ namespace Kyoo.Controllers
|
|||||||
_seasons = new Lazy<ISeasonRepository>(services.GetRequiredService<ISeasonRepository>);
|
_seasons = new Lazy<ISeasonRepository>(services.GetRequiredService<ISeasonRepository>);
|
||||||
_episodes = new Lazy<IEpisodeRepository>(services.GetRequiredService<IEpisodeRepository>);
|
_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 />
|
/// <inheritdoc />
|
||||||
public override async Task<ICollection<Show>> Search(string query)
|
public override async Task<ICollection<Show>> Search(string query)
|
||||||
|
@ -32,7 +32,7 @@ namespace Kyoo.Controllers
|
|||||||
public async Task<IEnumerable<string>> GetPossibleParameters()
|
public async Task<IEnumerable<string>> GetPossibleParameters()
|
||||||
{
|
{
|
||||||
using IServiceScope serviceScope = _serviceProvider.CreateScope();
|
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);
|
return (await libraryManager!.GetAll<Library>()).Select(x => x.Slug);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ namespace Kyoo.Controllers
|
|||||||
_parallelTasks = 30;
|
_parallelTasks = 30;
|
||||||
|
|
||||||
using IServiceScope serviceScope = _serviceProvider.CreateScope();
|
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>())
|
foreach (Show show in await libraryManager!.GetAll<Show>())
|
||||||
if (!Directory.Exists(show.Path))
|
if (!Directory.Exists(show.Path))
|
||||||
@ -149,7 +149,7 @@ namespace Kyoo.Controllers
|
|||||||
if (token.IsCancellationRequested || path.Split(Path.DirectorySeparatorChar).Contains("Subtitles"))
|
if (token.IsCancellationRequested || path.Split(Path.DirectorySeparatorChar).Contains("Subtitles"))
|
||||||
return;
|
return;
|
||||||
using IServiceScope serviceScope = _serviceProvider.CreateScope();
|
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");
|
string patern = _config.GetValue<string>("subtitleRegex");
|
||||||
Regex regex = new(patern, RegexOptions.IgnoreCase);
|
Regex regex = new(patern, RegexOptions.IgnoreCase);
|
||||||
@ -196,7 +196,7 @@ namespace Kyoo.Controllers
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
using IServiceScope serviceScope = _serviceProvider.CreateScope();
|
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");
|
string patern = _config.GetValue<string>("regex");
|
||||||
Regex regex = new(patern, RegexOptions.IgnoreCase);
|
Regex regex = new(patern, RegexOptions.IgnoreCase);
|
||||||
|
@ -64,8 +64,6 @@ namespace Kyoo.Tasks
|
|||||||
await ExtractEpisode(episode, thumbs, subs);
|
await ExtractEpisode(episode, thumbs, subs);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
await _library!.DisposeAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task ExtractShow(Show show, bool thumbs, bool subs, CancellationToken token)
|
private async Task ExtractShow(Show show, bool thumbs, bool subs, CancellationToken token)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user