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

View File

@ -137,7 +137,10 @@ namespace Kyoo.Controllers
.Select(x =>
{
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();
show.People = await _thumbnailsManager.Validate(show.People);
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);
if (season == null)
season = await GetSeason(show, episode.SeasonNumber, library);
else
episode.ExternalIDs = _libraryManager.ValidateExternalIDs(episode.ExternalIDs);
episode.Season = season;
if (season == null)
{
@ -178,6 +179,7 @@ namespace Kyoo.Controllers
return null;
}
episode.ExternalIDs = _libraryManager.ValidateExternalIDs(episode.ExternalIDs);
await _thumbnailsManager.Validate(episode);
await GetTracks(episode);
return episode;