public DataTable DataManagementPlanToDataTable(DataManagementPlan dmp, IList<ProjectParty> projectParties, string listSeparator = ListSeparator)
 {
     var dataTable = new DataTable();
     dataTable.AddDmpColumns(dmp);
     var dataRow = dataTable.NewRow();
     dataRow.AddDmpValues(dmp, projectParties, listSeparator);
     dataTable.Rows.Add(dataRow);
     return dataTable;
 }
 internal static void AddDmpValues(this DataRow dataRow, DataManagementPlan dmp, IList<ProjectParty> projectParties, string listSeparator)
 {
     dataRow.AddValues(listSeparator, false, dmp.DataStorage, dmp.NewDataDetail,
                       dmp.ExistingDataDetail, dmp.DataDocumentation, dmp.Ethic, dmp.Confidentiality,
                       dmp.BackupPolicy, dmp.DataRetention, dmp.DataSharing, dmp.DataRelationshipDetail);
     dataRow[CreationDateColumn] = dmp.CreationDate;
     dataRow[ProjectAccessRolesColumn] = ((IList)projectParties).ToStringValue(listSeparator);
 }
        internal static void AddDmpColumns(this DataTable dataTable, DataManagementPlan dmp)
        {
            dataTable.AddColumns(false, typeof(DataStorage), typeof(NewDataDetail),
                                 typeof(ExistingDataDetail), typeof(DataDocumentation), typeof(Ethic), typeof(Confidentiality),
                                 typeof(BackupPolicy), typeof(DataRetention), typeof(DataSharing), typeof(DataRelationshipDetail), typeof(DataOrganisation));

            dataTable.Columns.Add(CreationDateColumn, typeof(DateTime));
            dataTable.Columns.Add(ProjectAccessRolesColumn, typeof(string));
        }