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());
        }