Mare library item aggregates to assist with importing

This commit is contained in:
Robert McRackan 2019-10-25 22:45:48 -04:00
parent 8872cba2cd
commit df889a60a4
2 changed files with 7 additions and 3 deletions

View File

@ -8,7 +8,8 @@ namespace DTOs
public partial class LibraryApiV10 public partial class LibraryApiV10
{ {
public IEnumerable<Person> AuthorsDistinct => Items.GetAuthorsDistinct(); public IEnumerable<Person> AuthorsDistinct => Items.GetAuthorsDistinct();
public IEnumerable<Person> NarratorsDistinct => Items.GetNarratorsDistinct(); public IEnumerable<string> NarratorsDistinct => Items.GetNarratorsDistinct();
public IEnumerable<string> PublishersDistinct => Items.GetPublishersDistinct();
public IEnumerable<Series> SeriesDistinct => Items.GetSeriesDistinct(); public IEnumerable<Series> SeriesDistinct => Items.GetSeriesDistinct();
public IEnumerable<Ladder> ParentCategoriesDistinct => Items.GetParentCategoriesDistinct(); public IEnumerable<Ladder> ParentCategoriesDistinct => Items.GetParentCategoriesDistinct();
public IEnumerable<Ladder> ChildCategoriesDistinct => Items.GetChildCategoriesDistinct(); public IEnumerable<Ladder> ChildCategoriesDistinct => Items.GetChildCategoriesDistinct();

View File

@ -10,8 +10,11 @@ namespace DTOs
public static IEnumerable<Person> GetAuthorsDistinct(this IEnumerable<Item> items) public static IEnumerable<Person> GetAuthorsDistinct(this IEnumerable<Item> items)
=> items.SelectMany(i => i.Authors).DistinctBy(a => new { a.Name, a.Asin }); => items.SelectMany(i => i.Authors).DistinctBy(a => new { a.Name, a.Asin });
public static IEnumerable<Person> GetNarratorsDistinct(this IEnumerable<Item> items) public static IEnumerable<string> GetNarratorsDistinct(this IEnumerable<Item> items)
=> items.SelectMany(i => i.Narrators).DistinctBy(n => new { n.Name, n.Asin }); => items.SelectMany(i => i.Narrators, (i, n) => n.Name).Distinct();
public static IEnumerable<string> GetPublishersDistinct(this IEnumerable<Item> items)
=> items.Select(i => i.Publisher).Distinct();
public static IEnumerable<Series> GetSeriesDistinct(this IEnumerable<Item> items) public static IEnumerable<Series> GetSeriesDistinct(this IEnumerable<Item> items)
=> items.SelectMany(i => i.Series).DistinctBy(s => new { s.SeriesName, s.SeriesId }); => items.SelectMany(i => i.Series).DistinctBy(s => new { s.SeriesName, s.SeriesId });