public async Task WriteDataBatch(ChangedDataRecords changedDataRecordsBatch)
        {
            var filteredRecords = IndexFiltering.FilteredRecords(changedDataRecordsBatch.InteractionRecords, _logger);
            var filteredChanges = new ChangedDataRecords(changedDataRecordsBatch.ContactRecords, filteredRecords.AsReadOnly(), changedDataRecordsBatch.DeletedContactIds, changedDataRecordsBatch.DeletedInteractionIds);

            await _inner.WriteDataBatch(filteredChanges).ConfigureAwait(false);
        }
        public async Task <Task> Write(ChangedDataRecords changes, CancellationToken cancellationToken)
        {
            changes = Condition.Requires(changes, nameof(changes)).IsNotNull().Value;

            var filteredRecords = IndexFiltering.FilteredRecords(changes.InteractionRecords, _logger);
            ChangedDataRecords filteredChanges = new ChangedDataRecords(changes.ContactRecords, filteredRecords.AsReadOnly(), changes.DeletedContactIds, changes.DeletedInteractionIds);

            Task task = await _writer.Write(filteredChanges, cancellationToken).ConfigureAwait(false);

            return(task);
        }