public static ProjectLayout Create( string name, IEnumerable <EpicMetadata> epics, int projectRowIndex, ILayoutDesigner designer) { var rows = designer.Layout(epics); var cards = rows .SelectMany((row, index) => row.Select(m => new EpicCard(m, index + projectRowIndex + 1))) .ToArray(); return(new ProjectLayout(name, cards, projectRowIndex, projectRowIndex + rows.Count)); }