public static FieldAttributes[][] ToFlattenedFieldAttributes(this Template projectTemplateMetadata, string formCheckCode) { List <FieldAttributes[]> projectFlattenedFieldAttributes = new List <FieldAttributes[]>(); var viewIdToViewMap = new Dictionary <int, View>(); foreach (var view in projectTemplateMetadata.Project.Views) { viewIdToViewMap[view.ViewId] = view; var pages = new Page[0]; pages = pages.Union(view.Pages).ToArray(); var formFlattenedFieldAttributes = pages.SelectMany(pageMetadata => FieldAttributes.MapFieldMetadataToFieldAttributes(pageMetadata.Fields, formCheckCode).Values).ToArray(); projectFlattenedFieldAttributes.Add(formFlattenedFieldAttributes); } return(projectFlattenedFieldAttributes.ToArray()); }