public Adapter(T entity, ISetup setup) { DataSource = setup.DataSource; if (setup is ISetupWithInfo setupWithInfo && setupWithInfo.Handler.If(out var handler)) { DataSource.SetMessageHandler(handler); } Command = setup.CommandText; Parameters = new Parameters.Parameters(setup.Parameters); Fields = new Fields.Fields(setup.Fields); this.entity = entity.Must().Not.BeNull().Force <T>(); setEntityType(); setNewFunc(); }
public Reader(DataSource dataSource, T entity, Func <T> entityFunc, string command, Parameters.Parameters parameters, Fields.Fields fields) { this.dataSource = dataSource; dataSource.BeginReading(entity, command, parameters, fields); Entity = entity; this.entityFunc = entityFunc; var outputParameters = new Parameters.Parameters(); foreach (var dataParameter in dataSource.Command.Required("Command hasn't be set").Parameters.Cast <IDataParameter>() .Where(p => p.Direction == ParameterDirection.Output)) { outputParameters[dataParameter.ParameterName] = parameters[dataParameter.ParameterName]; } }