private void SendEventRecord(EventRecord eventRecord)
        {
            var envelope = new RawEventRecordEnvelope(
                eventRecord,
                _options.IncludeEventData,
                _options.BookmarkOnBufferFlush && InitialPosition != InitialPositionEnum.EOS
                    ? new IntegerPositionRecordBookmark(Id, Id, eventRecord.RecordId ?? 0)
                    : null);

            _recordSubject.OnNext(envelope);
            _metrics?.PublishCounter(Id, MetricsConstants.CATEGORY_SOURCE, CounterTypeEnum.Increment,
                                     MetricsConstants.EVENTLOG_SOURCE_EVENTS_READ, 1, MetricUnit.Count);
        }
        private void SendEventRecord(EventRecord eventRecord)
        {
            if (InitialPosition == InitialPositionEnum.Timestamp &&
                InitialPositionTimestamp.HasValue &&
                eventRecord.TimeCreated.HasValue &&
                InitialPositionTimestamp.Value > eventRecord.TimeCreated.Value.ToUniversalTime())
            {
                return; //Don't send if timetamp initial position is in the future
            }

            if (customFilters.Any(name => !EventInfoFilters.GetFilter(name)(eventRecord)))
            {
                //Don't send if any filter return false
                return;
            }

            var envelope = new RawEventRecordEnvelope(eventRecord, _includeEventData, 0);

            _recordSubject.OnNext(envelope);
            _metrics?.PublishCounter(Id, MetricsConstants.CATEGORY_SOURCE, CounterTypeEnum.Increment,
                                     MetricsConstants.EVENTLOG_SOURCE_EVENTS_READ, 1, MetricUnit.Count);
        }