public Fetcher(IDocumentStore store, DaemonSettings settings, AsyncOptions options, IDaemonLogger logger, IDaemonErrorHandler errorHandler, IEnumerable <Type> eventTypes) { _settings = settings; _options = options; _logger = logger; _errorHandler = errorHandler; State = FetcherState.Waiting; // TODO -- this will have to change _tenant = store.Tenancy.Default; _streamIdentity = store.Events.StreamIdentity; _selector = _tenant.EventStorage(); EventTypeNames = eventTypes.Select(x => store.Events.EventMappingFor(x).Alias).ToArray(); var fields = _selector.SelectFields().Join(", "); _sql = $@" select seq_id from {_selector.Events.DatabaseSchemaName}.mt_events where seq_id > :last and seq_id <= :limit and extract(epoch from age(transaction_timestamp(), {_selector.Events.DatabaseSchemaName}.mt_events.timestamp)) >= :buffer order by seq_id; select {fields} from {_selector.Events.DatabaseSchemaName}.mt_events where seq_id > :last and seq_id <= :limit and type = ANY(:types) and extract(epoch from age(transaction_timestamp(), {_selector.Events.DatabaseSchemaName}.mt_events.timestamp)) >= :buffer order by seq_id; select min(seq_id) from {_selector.Events.DatabaseSchemaName}.mt_events where seq_id > :limit and type = ANY(:types) and extract(epoch from age(transaction_timestamp(), {_selector.Events.DatabaseSchemaName}.mt_events.timestamp)) >= :buffer; select max(seq_id) from {_selector.Events.DatabaseSchemaName}.mt_events where seq_id >= :limit and extract(epoch from age(transaction_timestamp(), {_selector.Events.DatabaseSchemaName}.mt_events.timestamp)) >= :buffer ".Replace(" as d", ""); }
public Fetcher(IDocumentStore store, DaemonSettings settings, AsyncOptions options, IDaemonLogger logger, IDaemonErrorHandler errorHandler, IEnumerable <Type> eventTypes) { _settings = settings; _options = options; _logger = logger; _errorHandler = errorHandler; State = FetcherState.Waiting; // TODO -- this will have to change _tenant = store.Tenancy.Default; _streamIdentity = store.Events.StreamIdentity; _selector = store.Events.StreamIdentity == StreamIdentity.AsGuid ? (IEventSelector) new EventSelector(store.Events, store.Advanced.Serializer) : new StringIdentifiedEventSelector(store.Events, store.Advanced.Serializer); _map = new NulloIdentityMap(store.Advanced.Serializer); EventTypeNames = eventTypes.Select(x => store.Events.EventMappingFor(x).Alias).ToArray(); _sql = $@" select seq_id from {_selector.Events.DatabaseSchemaName}.mt_events where seq_id > :last and seq_id <= :limit and age(transaction_timestamp(), {_selector.Events.DatabaseSchemaName}.mt_events.timestamp) >= :buffer order by seq_id; {_selector.ToSelectClause(null)} where seq_id > :last and seq_id <= :limit and type = ANY(:types) and age(transaction_timestamp(), {_selector.Events.DatabaseSchemaName}.mt_events.timestamp) >= :buffer order by seq_id; select min(seq_id) from {_selector.Events.DatabaseSchemaName}.mt_events where seq_id > :limit and type = ANY(:types) and age(transaction_timestamp(), {_selector.Events.DatabaseSchemaName}.mt_events.timestamp) >= :buffer; select max(seq_id) from {_selector.Events.DatabaseSchemaName}.mt_events where seq_id >= :limit and age(transaction_timestamp(), {_selector.Events.DatabaseSchemaName}.mt_events.timestamp) >= :buffer ".Replace(" as d", ""); }
public ProjectionTrack(IFetcher fetcher, IDocumentStore store, IProjection projection, IDaemonLogger logger, IDaemonErrorHandler errorHandler) { _fetcher = fetcher; _projection = projection; _logger = logger; _errorHandler = errorHandler; _store = store; _events = store.Schema.Events; ViewType = _projection.Produces; }
public ProjectionTrack(IFetcher fetcher, DocumentStore store, IProjection projection, IDaemonLogger logger, IDaemonErrorHandler errorHandler, ITenant tenant) { _fetcher = fetcher; _projection = projection; _logger = logger; _errorHandler = errorHandler; _tenant = tenant; _store = store; _events = store.Events; ViewType = _projection.ProjectedType(); }
public Fetcher(IDocumentStore store, DaemonSettings settings, AsyncOptions options, IDaemonLogger logger, IDaemonErrorHandler errorHandler, IEnumerable <Type> eventTypes) { _settings = settings; _options = options; _logger = logger; _errorHandler = errorHandler; State = FetcherState.Waiting; _connectionFactory = store.Advanced.Options.ConnectionFactory(); _selector = new EventSelector(store.Schema.Events, store.Advanced.Serializer); _map = new NulloIdentityMap(store.Advanced.Serializer); EventTypeNames = eventTypes.Select(x => store.Schema.Events.EventMappingFor(x).Alias).ToArray(); }
public Fetcher(IDocumentStore store, DaemonSettings settings, AsyncOptions options, IDaemonLogger logger, IDaemonErrorHandler errorHandler, IEnumerable<Type> eventTypes) { _settings = settings; _options = options; _logger = logger; _errorHandler = errorHandler; State = FetcherState.Waiting; _connectionFactory = store.Advanced.Options.ConnectionFactory(); _selector = new EventSelector(store.Schema.Events, store.Advanced.Serializer); _map = new NulloIdentityMap(store.Advanced.Serializer); EventTypeNames = eventTypes.Select(x => store.Schema.Events.EventMappingFor(x).Alias).ToArray(); }
public Fetcher(IDocumentStore store, DaemonSettings settings, IProjection projection, IDaemonLogger logger, IDaemonErrorHandler errorHandler) : this(store, settings, projection.AsyncOptions, logger, errorHandler, projection.Consumes) { }