Fixing tracks edits, still need to fix slugs

This commit is contained in:
Zoe Roux 2021-03-17 00:39:41 +01:00
parent cfc3e4b865
commit d0715055f1
2 changed files with 8 additions and 11 deletions

View File

@ -94,6 +94,7 @@ namespace Kyoo.Models
{ {
get get
{ {
// TODO other type of tracks should still have slugs. The slug should never be an ID. Maybe a und-number format.
if (Type != StreamType.Subtitle) if (Type != StreamType.Subtitle)
return null; return null;

View File

@ -172,17 +172,13 @@ namespace Kyoo.Controllers
if (changed.Tracks != null || resetOld) if (changed.Tracks != null || resetOld)
{ {
ICollection<Track> oldTracks = await _tracks.GetAll(x => x.EpisodeID == resource.ID); ICollection<Track> oldTracks = await _tracks.GetAll(x => x.EpisodeID == resource.ID);
resource.Tracks = await changed.Tracks.SelectAsync(async track => await _tracks.DeleteRange(oldTracks);
{ resource.Tracks = await changed.Tracks.SelectAsync(x =>
Track oldValue = oldTracks?.FirstOrDefault(x => Utility.ResourceEquals(track, x)); {
if (oldValue == null) x.Episode = resource;
return await _tracks.CreateIfNotExists(track, true); x.EpisodeID = resource.ID;
oldTracks.Remove(oldValue); return _tracks.Create(x);
return oldValue; }).ToListAsync();
})
.ToListAsync();
foreach (Track x in oldTracks)
await _tracks.Delete(x);
} }
if (changed.ExternalIDs != null || resetOld) if (changed.ExternalIDs != null || resetOld)