Fix merge of exiting keys

This commit is contained in:
2025-09-21 03:04:29 +02:00
parent 21a98ad495
commit e6c3c893f7

View File

@@ -200,28 +200,25 @@ public static class Tranga
manga.AltTitles = manga.AltTitles.UnionBy(addManga.AltTitles, altTitle => altTitle.Key).ToList(); manga.AltTitles = manga.AltTitles.UnionBy(addManga.AltTitles, altTitle => altTitle.Key).ToList();
manga.Chapters = manga.Chapters.UnionBy(addManga.Chapters, chapter => chapter.Key).ToList(); manga.Chapters = manga.Chapters.UnionBy(addManga.Chapters, chapter => chapter.Key).ToList();
manga.MangaConnectorIds = manga.MangaConnectorIds.UnionBy(addManga.MangaConnectorIds, id => id.MangaConnectorName).ToList(); manga.MangaConnectorIds = manga.MangaConnectorIds.UnionBy(addManga.MangaConnectorIds, id => id.MangaConnectorName).ToList();
addManga = manga;
} }
else else
{ {
Log.Debug("Manga does not exist yet."); Log.Debug("Manga does not exist yet.");
manga = addManga; IEnumerable<MangaTag> mergedTags = addManga.MangaTags.Select(mt =>
IEnumerable<MangaTag> mergedTags = manga.MangaTags.Select(mt =>
{ {
MangaTag? inDb = context.Tags.Find(mt.Tag); MangaTag? inDb = context.Tags.Find(mt.Tag);
return inDb ?? mt; return inDb ?? mt;
}); });
manga.MangaTags = mergedTags.ToList(); addManga.MangaTags = mergedTags.ToList();
IEnumerable<Author> mergedAuthors = manga.Authors.Select(ma => IEnumerable<Author> mergedAuthors = addManga.Authors.Select(ma =>
{ {
Author? inDb = context.Authors.Find(ma.Key); Author? inDb = context.Authors.Find(ma.Key);
return inDb ?? ma; return inDb ?? ma;
}); });
manga.Authors = mergedAuthors.ToList(); addManga.Authors = mergedAuthors.ToList();
context.Mangas.Add(manga); context.Mangas.Add(addManga);
} }
if (await context.Sync(token, reason: "AddMangaToContext") is { success: false }) if (await context.Sync(token, reason: "AddMangaToContext") is { success: false })