using System; using System.Collections.Generic; using System.Linq; using Dinah.Core.Collections.Generic; namespace DTOs { public static class LibraryApiV10Extensions { public static IEnumerable GetAuthorsDistinct(this IEnumerable items) => items.SelectMany(i => i.Authors).DistinctBy(a => new { a.Name, a.Asin }); public static IEnumerable GetNarratorsDistinct(this IEnumerable items) => items.SelectMany(i => i.Narrators, (i, n) => n.Name).Distinct(); public static IEnumerable GetPublishersDistinct(this IEnumerable items) => items.Select(i => i.Publisher).Distinct(); public static IEnumerable GetSeriesDistinct(this IEnumerable items) => items.SelectMany(i => i.Series).DistinctBy(s => new { s.SeriesName, s.SeriesId }); public static IEnumerable GetParentCategoriesDistinct(this IEnumerable items) => items.Select(l => l.ParentCategory).DistinctBy(l => new { l.CategoryName, l.CategoryId }); public static IEnumerable GetChildCategoriesDistinct(this IEnumerable items) => items .Select(l => l.ChildCategory) .Where(l => l != null) .DistinctBy(l => new { l.CategoryName, l.CategoryId }); } }