namespace ErsatzTV.Core.Scheduling; public static class MultiCollectionGrouper { public static List GroupMediaItems(IEnumerable collections) { var result = new List(); foreach (CollectionWithItems collection in collections.Where(collection => collection.MediaItems.Any())) { if (collection.ScheduleAsGroup) { result.Add(new MultiCollectionGroup(collection)); } else { result.AddRange(collection.MediaItems.Map(i => new GroupedMediaItem { First = i })); } } return result.Distinct().ToList(); } }