private void GetCommonNamesTable(ICheckNotifier notifier) { if (_commonNames == null) { if (NamesTable == null) { notifier.OnCheckPerformed( new CheckEventArgs( "No NamesTable has been set, this must be a Table containing a list of names to REDACT from the pipeline data being processed", CheckResult.Fail)); return; } //get access to the database under DataLoad context var databaseDiscovered = DataAccessPortal.GetInstance().ExpectDatabase(NamesTable, DataAccessContext.DataLoad); if (databaseDiscovered.Exists()) { notifier.OnCheckPerformed(new CheckEventArgs("Found Database '" + databaseDiscovered + "' ", CheckResult.Success)); } else { notifier.OnCheckPerformed(new CheckEventArgs("Database '" + databaseDiscovered + "' does not exist ", CheckResult.Fail)); } //expect a table matching the TableInfo var tableDiscovered = databaseDiscovered.ExpectTable(NamesTable.GetRuntimeName()); if (tableDiscovered.Exists()) { notifier.OnCheckPerformed(new CheckEventArgs("Found table '" + tableDiscovered + "' ", CheckResult.Success)); } else { notifier.OnCheckPerformed(new CheckEventArgs("Table '" + tableDiscovered + "' does not exist ", CheckResult.Fail)); } //make sure it exists if (!tableDiscovered.Exists()) { throw new NotSupportedException("TableInfo '" + tableDiscovered + "' does not exist!"); } //Download all the data var dataTable = tableDiscovered.GetDataTable(); //Make sure it has the correct expected schema (i.e. 1 column) if (dataTable.Columns.Count != 1) { throw new NotSupportedException("Expected a single column in DataTable '" + tableDiscovered + "'"); } //turn it into an array _commonNames = dataTable.Rows.Cast <DataRow>().Select(r => r[0] as string).Where(s => !string.IsNullOrWhiteSpace(s)).ToArray(); if (_commonNames.Length == 0) { notifier.OnCheckPerformed(new CheckEventArgs("Table '" + tableDiscovered + "' did not have any rows in it!", CheckResult.Fail)); //reset it just in case _commonNames = null; } else { notifier.OnCheckPerformed(new CheckEventArgs("Read " + _commonNames.Length + " names from name table", CheckResult.Success)); } } }