Implementing dispose/asyncdisposes

This commit is contained in:
Zoe Roux 2020-06-11 16:56:34 +02:00
parent d34a6fd75a
commit 7b266a2dff
11 changed files with 124 additions and 15 deletions

View File

@ -43,24 +43,32 @@ namespace Kyoo.Controllers
public void Dispose()
{
_libraries?.Dispose();
_collections?.Dispose();
_shows?.Dispose();
_seasons?.Dispose();
_episodes?.Dispose();
_tracks?.Dispose();
_genres?.Dispose();
_studios?.Dispose();
_people?.Dispose();
_providers?.Dispose();
_libraries.Dispose();
_collections.Dispose();
_shows.Dispose();
_seasons.Dispose();
_episodes.Dispose();
_tracks.Dispose();
_genres.Dispose();
_studios.Dispose();
_people.Dispose();
_providers.Dispose();
}
public async ValueTask DisposeAsync()
{
return ValueTask.(new []
{
_libraries.DisposeAsync()
});
await Task.WhenAll(
_libraries.DisposeAsync().AsTask(),
_collections.DisposeAsync().AsTask(),
_shows.DisposeAsync().AsTask(),
_seasons.DisposeAsync().AsTask(),
_episodes.DisposeAsync().AsTask(),
_tracks.DisposeAsync().AsTask(),
_genres.DisposeAsync().AsTask(),
_studios.DisposeAsync().AsTask(),
_people.DisposeAsync().AsTask(),
_providers.DisposeAsync().AsTask()
);
}
public Task<Library> GetLibrary(string slug)

View File

@ -19,6 +19,16 @@ namespace Kyoo.Controllers
_database = database;
}
public void Dispose()
{
_database.Dispose();
}
public ValueTask DisposeAsync()
{
return _database.DisposeAsync();
}
public Task<Collection> Get(int id)
{
return _database.Collections.FirstOrDefaultAsync(x => x.ID == id);

View File

@ -21,6 +21,16 @@ namespace Kyoo.Controllers
_serviceProvider = serviceProvider;
}
public void Dispose()
{
_database.Dispose();
}
public ValueTask DisposeAsync()
{
return _database.DisposeAsync();
}
public async Task<Episode> Get(int id)
{
return await _database.Episodes.FirstOrDefaultAsync(x => x.ID == id);

View File

@ -17,6 +17,16 @@ namespace Kyoo.Controllers
{
_database = database;
}
public void Dispose()
{
_database.Dispose();
}
public ValueTask DisposeAsync()
{
return _database.DisposeAsync();
}
public async Task<Genre> Get(int id)
{

View File

@ -20,7 +20,17 @@ namespace Kyoo.Controllers
_database = database;
_serviceProvider = serviceProvider;
}
public void Dispose()
{
_database.Dispose();
}
public ValueTask DisposeAsync()
{
return _database.DisposeAsync();
}
public Task<Library> Get(int id)
{
return _database.Libraries.FirstOrDefaultAsync(x => x.ID == id);

View File

@ -19,6 +19,16 @@ namespace Kyoo.Controllers
_database = database;
_serviceProvider = serviceProvider;
}
public void Dispose()
{
_database.Dispose();
}
public ValueTask DisposeAsync()
{
return _database.DisposeAsync();
}
public Task<People> Get(int id)
{

View File

@ -18,6 +18,16 @@ namespace Kyoo.Controllers
_database = database;
}
public void Dispose()
{
_database.Dispose();
}
public ValueTask DisposeAsync()
{
return _database.DisposeAsync();
}
public async Task<ProviderID> Get(int id)
{
return await _database.Providers.FirstOrDefaultAsync(x => x.ID == id);

View File

@ -21,6 +21,16 @@ namespace Kyoo.Controllers
_serviceProvider = serviceProvider;
}
public void Dispose()
{
_database.Dispose();
}
public ValueTask DisposeAsync()
{
return _database.DisposeAsync();
}
public async Task<Season> Get(int id)
{
return await _database.Seasons.FirstOrDefaultAsync(x => x.ID == id);

View File

@ -24,6 +24,17 @@ namespace Kyoo.Controllers
_studios = studios;
}
public void Dispose()
{
_database.Dispose();
_studios.Dispose();
}
public async ValueTask DisposeAsync()
{
await Task.WhenAll(_database.DisposeAsync().AsTask(), _studios.DisposeAsync().AsTask());
}
public async Task<Show> Get(int id)
{
return await _database.Shows.FirstOrDefaultAsync(x => x.ID == id);

View File

@ -18,6 +18,16 @@ namespace Kyoo.Controllers
_database = database;
}
public void Dispose()
{
_database.Dispose();
}
public ValueTask DisposeAsync()
{
return _database.DisposeAsync();
}
public async Task<Studio> Get(int id)
{
return await _database.Studios.FirstOrDefaultAsync(x => x.ID == id);

View File

@ -17,6 +17,16 @@ namespace Kyoo.Controllers
_database = database;
}
public void Dispose()
{
_database.Dispose();
}
public ValueTask DisposeAsync()
{
return _database.DisposeAsync();
}
public async Task<Track> Get(int id)
{
return await _database.Tracks.FirstOrDefaultAsync(x => x.ID == id);