コード例 #1
0
        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();
        }
コード例 #2
0
 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;
                 }
             }
         }
     }
 }