mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-24 02:02:36 -04:00
Starting to rightfully handle the delete function
This commit is contained in:
parent
74fabb11ea
commit
6cb7946569
@ -15,7 +15,7 @@ namespace Kyoo.Controllers
|
||||
Task<int> Create([NotNull] T obj);
|
||||
Task<int> CreateIfNotExists([NotNull] T obj);
|
||||
Task Edit([NotNull] T edited, bool resetOld);
|
||||
Task Delete(T obj);
|
||||
Task Delete([NotNull] T obj);
|
||||
}
|
||||
|
||||
public interface IShowRepository : IRepository<Show>
|
||||
|
@ -41,6 +41,22 @@ namespace Kyoo.Models
|
||||
[JsonIgnore] public virtual IEnumerable<PeopleLink> People { get; set; }
|
||||
[JsonIgnore] public virtual IEnumerable<Season> Seasons { get; set; }
|
||||
[JsonIgnore] public virtual IEnumerable<Episode> Episodes { get; set; }
|
||||
|
||||
[NotMergable] [JsonIgnore] public virtual IEnumerable<LibraryLink> LibraryLinks { get; set; }
|
||||
|
||||
[NotMergable] [JsonIgnore] public IEnumerable<Library> Libraries
|
||||
{
|
||||
get => LibraryLinks?.Select(x => x.Library);
|
||||
set => LibraryLinks = value?.Select(x => new LibraryLink(x, this));
|
||||
}
|
||||
|
||||
[NotMergable] [JsonIgnore] public IEnumerable<CollectionLink> CollectionLinks { get; set; }
|
||||
|
||||
[NotMergable] [JsonIgnore] public IEnumerable<Collection> Collections
|
||||
{
|
||||
get => CollectionLinks.Select(x => x.Collection);
|
||||
set => CollectionLinks = value?.Select(x => new CollectionLink(x, this));
|
||||
}
|
||||
|
||||
public Show() { }
|
||||
|
||||
|
@ -155,6 +155,12 @@ namespace Kyoo.Controllers
|
||||
|
||||
public async Task Delete(Episode obj)
|
||||
{
|
||||
if (obj.ExternalIDs != null)
|
||||
foreach (MetadataID entry in obj.ExternalIDs)
|
||||
_database.Entry(entry).State = EntityState.Deleted;
|
||||
if (obj.Tracks != null)
|
||||
foreach (Track entry in obj.Tracks)
|
||||
_database.Entry(entry).State = EntityState.Deleted;
|
||||
_database.Episodes.Remove(obj);
|
||||
await _database.SaveChangesAsync();
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ namespace Kyoo.Controllers
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
|
||||
await _database.Genres.AddAsync(obj);
|
||||
_database.Entry(obj).State = EntityState.Added;
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -126,7 +126,12 @@ namespace Kyoo.Controllers
|
||||
|
||||
public async Task Delete(Library obj)
|
||||
{
|
||||
_database.Libraries.Remove(obj);
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
_database.Entry(obj).State = EntityState.Deleted;
|
||||
if (obj.ProviderLinks != null)
|
||||
foreach (ProviderLink entry in obj.ProviderLinks)
|
||||
_database.Entry(entry).State = EntityState.Deleted;
|
||||
await _database.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
|
@ -125,7 +125,12 @@ namespace Kyoo.Controllers
|
||||
|
||||
public async Task Delete(People obj)
|
||||
{
|
||||
_database.Peoples.Remove(obj);
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
_database.Entry(obj).State = EntityState.Deleted;
|
||||
if (obj.ExternalIDs != null)
|
||||
foreach (MetadataID entry in obj.ExternalIDs)
|
||||
_database.Entry(entry).State = EntityState.Deleted;
|
||||
await _database.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
|
@ -112,7 +112,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public async Task Delete(ProviderID obj)
|
||||
{
|
||||
_database.Providers.Remove(obj);
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
_database.Entry(obj).State = EntityState.Deleted;
|
||||
await _database.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
|
@ -144,7 +144,12 @@ namespace Kyoo.Controllers
|
||||
|
||||
public async Task Delete(Season obj)
|
||||
{
|
||||
_database.Seasons.Remove(obj);
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
_database.Entry(obj).State = EntityState.Deleted;
|
||||
if (obj.ExternalIDs != null)
|
||||
foreach (MetadataID entry in obj.ExternalIDs)
|
||||
_database.Entry(entry).State = EntityState.Deleted;
|
||||
await _database.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
@ -163,9 +163,26 @@ namespace Kyoo.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
public async Task Delete(Show show)
|
||||
public async Task Delete(Show obj)
|
||||
{
|
||||
_database.Shows.Remove(show);
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
_database.Entry(obj).State = EntityState.Deleted;
|
||||
if (obj.GenreLinks != null)
|
||||
foreach (GenreLink entry in obj.GenreLinks)
|
||||
_database.Entry(entry).State = EntityState.Deleted;
|
||||
if (obj.People != null)
|
||||
foreach (PeopleLink entry in obj.People)
|
||||
_database.Entry(entry).State = EntityState.Deleted;
|
||||
if (obj.ExternalIDs != null)
|
||||
foreach (MetadataID entry in obj.ExternalIDs)
|
||||
_database.Entry(entry).State = EntityState.Deleted;
|
||||
if (obj.CollectionLinks != null)
|
||||
foreach (CollectionLink entry in obj.CollectionLinks)
|
||||
_database.Entry(entry).State = EntityState.Deleted;
|
||||
if (obj.LibraryLinks != null)
|
||||
foreach (LibraryLink entry in obj.LibraryLinks)
|
||||
_database.Entry(entry).State = EntityState.Deleted;
|
||||
await _database.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
@ -111,7 +111,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public async Task Delete(Studio obj)
|
||||
{
|
||||
_database.Studios.Remove(obj);
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
_database.Entry(obj).State = EntityState.Deleted;
|
||||
await _database.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
|
@ -101,7 +101,9 @@ namespace Kyoo.Controllers
|
||||
|
||||
public async Task Delete(Track obj)
|
||||
{
|
||||
_database.Tracks.Remove(obj);
|
||||
if (obj == null)
|
||||
throw new ArgumentNullException(nameof(obj));
|
||||
_database.Entry(obj).State = EntityState.Deleted;
|
||||
await _database.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
|
@ -116,7 +116,9 @@ namespace Kyoo
|
||||
.Ignore(x => x.Shows);
|
||||
|
||||
modelBuilder.Entity<Show>()
|
||||
.Ignore(x => x.Genres);
|
||||
.Ignore(x => x.Genres)
|
||||
.Ignore(x => x.Libraries)
|
||||
.Ignore(x => x.Collections);
|
||||
|
||||
modelBuilder.Entity<PeopleLink>()
|
||||
.Ignore(x => x.Slug)
|
||||
|
Loading…
x
Reference in New Issue
Block a user