Finishing metadataID handling on the register

This commit is contained in:
Zoe Roux 2020-05-01 02:06:00 +02:00
parent 7a1485a94d
commit 1db5b8b644
2 changed files with 8 additions and 6 deletions

View File

@ -448,7 +448,7 @@ namespace Kyoo.Controllers
public IEnumerable<MetadataID> ValidateExternalIDs(IEnumerable<MetadataID> ids) public IEnumerable<MetadataID> ValidateExternalIDs(IEnumerable<MetadataID> ids)
{ {
return ids.Select(x => return ids?.Select(x =>
{ {
x.Provider = _database.Providers.FirstOrDefault(y => y.Name == x.Provider.Name) ?? x.Provider; x.Provider = _database.Providers.FirstOrDefault(y => y.Name == x.Provider.Name) ?? x.Provider;
x.ProviderID = x.Provider.ID; x.ProviderID = x.Provider.ID;
@ -480,8 +480,8 @@ namespace Kyoo.Controllers
{ {
if (episode == null) if (episode == null)
return 0; return 0;
// if (!_database.Entry(episode).IsKeySet) if (!_database.Entry(episode).IsKeySet)
_database.Episodes.Add(episode); _database.Add(episode);
_database.SaveChanges(); _database.SaveChanges();
return episode.ID; return episode.ID;
} }

View File

@ -137,7 +137,10 @@ namespace Kyoo.Controllers
.Select(x => .Select(x =>
{ {
People existing = _libraryManager.GetPeopleBySlug(x.Slug); People existing = _libraryManager.GetPeopleBySlug(x.Slug);
return existing != null ? new PeopleLink(existing, show, x.Role, x.Type) : x; if (existing != null)
return new PeopleLink(existing, show, x.Role, x.Type);
x.People.ExternalIDs = _libraryManager.ValidateExternalIDs(x.People.ExternalIDs);
return x;
}).ToList(); }).ToList();
show.People = await _thumbnailsManager.Validate(show.People); show.People = await _thumbnailsManager.Validate(show.People);
show.Genres = show.Genres?.Select(x => show.Genres = show.Genres?.Select(x =>
@ -169,8 +172,6 @@ namespace Kyoo.Controllers
Episode episode = await _metadataProvider.GetEpisode(show, episodePath, season?.SeasonNumber ?? -1, episodeNumber, absoluteNumber, library); Episode episode = await _metadataProvider.GetEpisode(show, episodePath, season?.SeasonNumber ?? -1, episodeNumber, absoluteNumber, library);
if (season == null) if (season == null)
season = await GetSeason(show, episode.SeasonNumber, library); season = await GetSeason(show, episode.SeasonNumber, library);
else
episode.ExternalIDs = _libraryManager.ValidateExternalIDs(episode.ExternalIDs);
episode.Season = season; episode.Season = season;
if (season == null) if (season == null)
{ {
@ -178,6 +179,7 @@ namespace Kyoo.Controllers
return null; return null;
} }
episode.ExternalIDs = _libraryManager.ValidateExternalIDs(episode.ExternalIDs);
await _thumbnailsManager.Validate(episode); await _thumbnailsManager.Validate(episode);
await GetTracks(episode); await GetTracks(episode);
return episode; return episode;