mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-31 20:24:27 -04:00
Fixing the weird stack overflow
This commit is contained in:
parent
828f4d3f47
commit
ff1be5c145
@ -12,6 +12,7 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
public class CollectionRepository : LocalRepository<Collection, CollectionDE>, ICollectionRepository
|
||||
{
|
||||
private bool _disposed;
|
||||
private readonly DatabaseContext _database;
|
||||
private readonly Lazy<IShowRepository> _shows;
|
||||
private readonly Lazy<ILibraryRepository> _libraries;
|
||||
@ -26,7 +27,10 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
base.Dispose();
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
_database.Dispose();
|
||||
if (_shows.IsValueCreated)
|
||||
_shows.Value.Dispose();
|
||||
if (_libraries.IsValueCreated)
|
||||
@ -35,6 +39,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
await _database.DisposeAsync();
|
||||
if (_shows.IsValueCreated)
|
||||
await _shows.Value.DisposeAsync();
|
||||
|
@ -12,6 +12,7 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
public class EpisodeRepository : LocalRepository<Episode>, IEpisodeRepository
|
||||
{
|
||||
private bool _disposed;
|
||||
private readonly DatabaseContext _database;
|
||||
private readonly IProviderRepository _providers;
|
||||
private readonly IShowRepository _shows;
|
||||
@ -34,12 +35,18 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
_database.Dispose();
|
||||
_providers.Dispose();
|
||||
}
|
||||
|
||||
public override async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
await _database.DisposeAsync();
|
||||
await _providers.DisposeAsync();
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
public class GenreRepository : LocalRepository<Genre, GenreDE>, IGenreRepository
|
||||
{
|
||||
private bool _disposed;
|
||||
private readonly DatabaseContext _database;
|
||||
private readonly Lazy<IShowRepository> _shows;
|
||||
protected override Expression<Func<GenreDE, object>> DefaultSort => x => x.Slug;
|
||||
@ -25,13 +26,19 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
base.Dispose();
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
_database.Dispose();
|
||||
if (_shows.IsValueCreated)
|
||||
_shows.Value.Dispose();
|
||||
}
|
||||
|
||||
public override async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
await _database.DisposeAsync();
|
||||
if (_shows.IsValueCreated)
|
||||
await _shows.Value.DisposeAsync();
|
||||
|
@ -12,6 +12,7 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
public class LibraryItemRepository : LocalRepository<LibraryItem>, ILibraryItemRepository
|
||||
{
|
||||
private bool _disposed;
|
||||
private readonly DatabaseContext _database;
|
||||
private readonly IProviderRepository _providers;
|
||||
private readonly Lazy<ILibraryRepository> _libraries;
|
||||
@ -32,6 +33,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
_database.Dispose();
|
||||
_providers.Dispose();
|
||||
if (_shows.IsValueCreated)
|
||||
@ -42,6 +46,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
await _database.DisposeAsync();
|
||||
await _providers.DisposeAsync();
|
||||
if (_shows.IsValueCreated)
|
||||
|
@ -12,6 +12,7 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
public class LibraryRepository : LocalRepository<Library, LibraryDE>, ILibraryRepository
|
||||
{
|
||||
private bool _disposed;
|
||||
private readonly DatabaseContext _database;
|
||||
private readonly IProviderRepository _providers;
|
||||
private readonly Lazy<IShowRepository> _shows;
|
||||
@ -28,6 +29,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
_database.Dispose();
|
||||
_providers.Dispose();
|
||||
if (_shows.IsValueCreated)
|
||||
@ -36,6 +40,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
await _database.DisposeAsync();
|
||||
await _providers.DisposeAsync();
|
||||
if (_shows.IsValueCreated)
|
||||
|
@ -12,6 +12,7 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
public class PeopleRepository : LocalRepository<People>, IPeopleRepository
|
||||
{
|
||||
private bool _disposed;
|
||||
private readonly DatabaseContext _database;
|
||||
private readonly IProviderRepository _providers;
|
||||
private readonly Lazy<IShowRepository> _shows;
|
||||
@ -28,6 +29,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
_database.Dispose();
|
||||
_providers.Dispose();
|
||||
if (_shows.IsValueCreated)
|
||||
@ -36,6 +40,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
await _database.DisposeAsync();
|
||||
await _providers.DisposeAsync();
|
||||
if (_shows.IsValueCreated)
|
||||
|
@ -13,6 +13,7 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
public class SeasonRepository : LocalRepository<Season>, ISeasonRepository
|
||||
{
|
||||
private bool _disposed;
|
||||
private readonly DatabaseContext _database;
|
||||
private readonly IProviderRepository _providers;
|
||||
private readonly Lazy<IEpisodeRepository> _episodes;
|
||||
@ -35,6 +36,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
_database.Dispose();
|
||||
_providers.Dispose();
|
||||
if (_episodes.IsValueCreated)
|
||||
@ -43,6 +47,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
await _database.DisposeAsync();
|
||||
await _providers.DisposeAsync();
|
||||
if (_episodes.IsValueCreated)
|
||||
|
@ -12,6 +12,7 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
public class ShowRepository : LocalRepository<Show, ShowDE>, IShowRepository
|
||||
{
|
||||
private bool _disposed;
|
||||
private readonly DatabaseContext _database;
|
||||
private readonly IStudioRepository _studios;
|
||||
private readonly IPeopleRepository _people;
|
||||
@ -44,6 +45,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
_database.Dispose();
|
||||
_studios.Dispose();
|
||||
_people.Dispose();
|
||||
@ -61,6 +65,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
await _database.DisposeAsync();
|
||||
await _studios.DisposeAsync();
|
||||
await _people.DisposeAsync();
|
||||
|
@ -13,6 +13,7 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
public class TrackRepository : LocalRepository<Track>, ITrackRepository
|
||||
{
|
||||
private bool _disposed;
|
||||
private readonly DatabaseContext _database;
|
||||
private readonly Lazy<IEpisodeRepository> _episodes;
|
||||
protected override Expression<Func<Track, object>> DefaultSort => x => x.ID;
|
||||
@ -26,6 +27,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
_database.Dispose();
|
||||
if (_episodes.IsValueCreated)
|
||||
_episodes.Value.Dispose();
|
||||
@ -33,6 +37,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public override async ValueTask DisposeAsync()
|
||||
{
|
||||
if (_disposed)
|
||||
return;
|
||||
_disposed = true;
|
||||
await _database.DisposeAsync();
|
||||
if (_episodes.IsValueCreated)
|
||||
await _episodes.Value.DisposeAsync();
|
||||
|
@ -15,7 +15,7 @@ namespace Kyoo.Models
|
||||
}
|
||||
|
||||
[JsonIgnore] [NotMergable] public virtual IEnumerable<LibraryLink> LibraryLinks { get; set; }
|
||||
public override IEnumerable<Library> Libraries
|
||||
/*[ExpressionRewrite(x => x.LibraryLinks, y => y.Genre)]*/ public override IEnumerable<Library> Libraries
|
||||
{
|
||||
get => LibraryLinks?.Select(x => x.Library);
|
||||
set => LibraryLinks = value?.Select(x => new LibraryLink(x, this));
|
||||
|
@ -14,7 +14,7 @@ namespace Kyoo.Models
|
||||
public override IEnumerable<Genre> Genres
|
||||
{
|
||||
get => GenreLinks?.Select(x => x.Genre);
|
||||
set => GenreLinks = value?.Select(x => new GenreLink(this, x)).ToList();
|
||||
set => GenreLinks = value?.Select(x => new GenreLink(this, x));
|
||||
}
|
||||
|
||||
[JsonIgnore] [NotMergable] public virtual IEnumerable<LibraryLink> LibraryLinks { get; set; }
|
||||
@ -32,15 +32,6 @@ namespace Kyoo.Models
|
||||
set => CollectionLinks = value?.Select(x => new CollectionLink(x, this));
|
||||
}
|
||||
|
||||
public override void OnMerge(object merged)
|
||||
{
|
||||
base.OnMerge(merged);
|
||||
|
||||
if (GenreLinks != null)
|
||||
foreach (GenreLink genre in GenreLinks)
|
||||
genre.Show = this;
|
||||
}
|
||||
|
||||
public ShowDE() {}
|
||||
|
||||
public ShowDE(Show show)
|
||||
|
Loading…
x
Reference in New Issue
Block a user