mirror of https://github.com/ErsatzTV/ErsatzTV.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
940 B
37 lines
940 B
using System.Diagnostics; |
|
using ErsatzTV.Core.Domain; |
|
|
|
namespace ErsatzTV.Core.Scheduling; |
|
|
|
[DebuggerDisplay("{" + nameof(First) + "}")] |
|
public class GroupedMediaItem |
|
{ |
|
public GroupedMediaItem() |
|
{ |
|
} |
|
|
|
public GroupedMediaItem(MediaItem first, List<MediaItem> additional) |
|
{ |
|
First = first; |
|
Additional = additional ?? new List<MediaItem>(); |
|
} |
|
|
|
public MediaItem First { get; set; } |
|
public List<MediaItem> Additional { get; set; } |
|
|
|
public static IList<MediaItem> FlattenGroups(GroupedMediaItem[] copy, int mediaItemCount) |
|
{ |
|
var result = new MediaItem[mediaItemCount]; |
|
var i = 0; |
|
foreach (GroupedMediaItem group in copy) |
|
{ |
|
result[i++] = group.First; |
|
foreach (MediaItem additional in Optional(group.Additional).Flatten()) |
|
{ |
|
result[i++] = additional; |
|
} |
|
} |
|
|
|
return result; |
|
} |
|
}
|
|
|