private void PerformCleanup() { for (int i = _populatedOutput.PopulatedDataTable.Rows.Count - 1; i >= 0; i--) { //foreach (DataRow row in _populatedOutput.PopulatedDataTable.Rows) { DataRow row = _populatedOutput.PopulatedDataTable.Rows[i]; foreach (ConfigurationElementColumn column in _columnsWithCleanup) { object cell = row[column.Name]; string cellVal = cell.ToString(); object originalCell = cell; foreach (ConfigurationElementCleanUp cleanup in column.CleanupCollection) { if (cleanup.Active && StringEvaluation.eval(cleanup.Condition, cellVal, cleanup.Value)) { CleanupItem cleanupItem; ConfigurationCleanupActions.CleanupActionType actionType = ConfigurationCleanupActions.GetCleanUpActionType(cleanup.Action); string[] identifiers = GetRowIdentifier(row); if (actionType == ConfigurationCleanupActions.CleanupActionType.REMOVAL) { cleanupItem = new CleanupItemRemove(cleanup.Action, cleanup.Scope, cleanup.Condition, identifiers, column.Name, cellVal, cleanup.Report); } else if (actionType == ConfigurationCleanupActions.CleanupActionType.MODIFICATION) { cleanupItem = new CleanupItemUpdate(cleanup.Action, cleanup.Scope, cleanup.Condition, originalCell.ToString(), cellVal, identifiers, cleanup.Report); } else if (actionType == ConfigurationCleanupActions.CleanupActionType.STATS) { cleanupItem = new CleanupItem(cleanup.Action, cleanup.Scope, cleanup.Condition, "Value = " + cellVal, identifiers, cleanup.Report); } else { cleanupItem = new CleanupItem(cleanup.Action, cleanup.Scope, cleanup.Condition, "Unknown Cleanup, no cleanup performed", identifiers, cleanup.Report); } if (cleanup.Scope == ConfigurationCleanupActions.CleanupScope.ROW) { ConfigurationCleanupActions.PerformCleanupAction(cleanup.Action, row); } else { row[column.Name] = ConfigurationCleanupActions.PerformCleanupAction(cleanup.Action, cell, column.DataType); } _cleanups.Add(cleanupItem); } } } } _populatedOutput.PopulatedDataTable.AcceptChanges(); }
private void PerformPopulations() { foreach (DataRow row in _populatedTable.Rows) { foreach (ConfigurationElementColumn column in _columnsWithPopulations) { foreach (ConfigurationElementPopulation population in column.PopulationCollection) { if (population.Active && StringEvaluation.eval(population.Condition, row[column.Name].ToString(), population.FindValue)) { row[population.ToColumn] = population.SetValue; } } } } }