public DatabaseDataReader(string connStrName, ADataReaderParams readerParams, ACounterReader counterReader) { _params = readerParams as DatabaseDataReaderParams; _counterReader = counterReader as CounterReader; CheckParams(_params); _container = new FieldsContainer(); _db = Database.OpenConnection(connStrName); }
public static INotificationDataReader Prepare(ConfigManager.Models.Reader reader, ConfigManager.ConfigManager configManager) { var databaseDataReaderParams = new DatabaseDataReaderParams { LogicalStorage = reader.LogicalName, TableName = reader.AdditionalParams.TableName, InitialCounter = reader.InitialCounter, MessageTypeColumnName = reader.AdditionalParams.MessageTypeColumnName, ColumnsNames = reader.ColumnNames }; var setCounterReader = new Reader(configManager, reader.ReaderId); return(new DatabaseDataReader.DatabaseDataReader(reader.ConnectionString, databaseDataReaderParams, setCounterReader)); }
private void CheckParams(DatabaseDataReaderParams p) { if (p == null) { throw new ArgumentNullException(nameof(p)); } if (string.IsNullOrEmpty(p.TableName)) { throw new ArgumentNullException($"{nameof(p.TableName)} is empty"); } if (!p.ColumnsNames.Any()) { throw new ArgumentException("Column doesn't exist!"); } }
public INotificationDataReader Prepare(ConfigManager.Models.Reader reader, ConfigManager.ConfigManager configManager) { var databaseDataReaderParams = new DatabaseDataReaderParams { LogicalStorage = reader.LogicalName, Schema = reader.ReaderAdditionalParams.Schema ?? "dbo", TableName = reader.ReaderAdditionalParams.TableName, OrderByColumnName = reader.ReaderAdditionalParams.OrderByColumnName, InitialCounter = reader.InitialCounter, MessageTypeColumnName = reader.ReaderAdditionalParams.MessageTypeColumnName, ColumnsNames = reader.ColumnNames }; var setCounterReader = new CounterReader(configManager, reader.ReaderId); var notificationDataReaderDecorator = new NotificationDataReaderDecorator( new DatabaseDataReader.DatabaseDataReader(reader.ConnectionString, databaseDataReaderParams, setCounterReader), reader.ReaderId); return(notificationDataReaderDecorator); }