private async Task DeleteEventInternal(
            StreamIdInfo streamIdInfo,
            Guid eventId,
            MySqlTransaction transaction,
            CancellationToken cancellationToken)
        {
            var deletedMessageMessage = Deleted.CreateMessageDeletedMessage(
                streamIdInfo.MySqlStreamId.IdOriginal,
                eventId);

            var deletedStreamId         = Parameters.DeletedStreamId();
            var deletedStreamIdOriginal = Parameters.DeletedStreamIdOriginal();
            var deletedMetadataStreamId = Parameters.DeletedMetadataStreamId();
            var deletedMessageMessageId = Parameters.DeletedMessageMessageId(deletedMessageMessage);
            var deletedMessageType      = Parameters.DeletedMessageType(deletedMessageMessage);
            var deletedMessageJsonData  = Parameters.DeletedMessageJsonData(deletedMessageMessage);

            using (var command = BuildStoredProcedureCall(
                       _schema.DeleteStreamMessage,
                       transaction,
                       Parameters.StreamId(streamIdInfo.MySqlStreamId),
                       Parameters.MessageId(eventId),
                       Parameters.CreatedUtc(_settings.GetUtcNow?.Invoke()),
                       Parameters.DeletionTrackingDisabled(_settings.DisableDeletionTracking),
                       _settings.DisableDeletionTracking ? deletedStreamId.Empty() : deletedStreamId,
                       _settings.DisableDeletionTracking ? deletedStreamIdOriginal.Empty() : deletedStreamIdOriginal,
                       _settings.DisableDeletionTracking ? deletedMetadataStreamId.Empty() : deletedMetadataStreamId,
                       _settings.DisableDeletionTracking ? deletedMessageMessageId.Empty() : deletedMessageMessageId,
                       _settings.DisableDeletionTracking ? deletedMessageType.Empty() : deletedMessageType,
                       _settings.DisableDeletionTracking ? deletedMessageJsonData.Empty() : deletedMessageJsonData))
            {
                await command.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false);
            }
        }
Example #2
0
        private async Task DeleteEventInternal(
            StreamIdInfo streamIdInfo,
            Guid eventId,
            MySqlTransaction transaction,
            CancellationToken cancellationToken)
        {
            var deletedMessageMessage = Deleted.CreateMessageDeletedMessage(
                streamIdInfo.MySqlStreamId.IdOriginal,
                eventId);

            using (var command = BuildStoredProcedureCall(
                       _schema.DeleteStreamMessage,
                       transaction,
                       Parameters.StreamId(streamIdInfo.MySqlStreamId),
                       Parameters.MessageId(eventId),
                       Parameters.DeletedStreamId(),
                       Parameters.DeletedStreamIdOriginal(),
                       Parameters.DeletedMetadataStreamId(),
                       Parameters.CreatedUtc(_settings.GetUtcNow?.Invoke()),
                       Parameters.DeletedMessageMessageId(deletedMessageMessage),
                       Parameters.DeletedMessageType(deletedMessageMessage),
                       Parameters.DeletedMessageJsonData(deletedMessageMessage)))
            {
                await command.ExecuteNonQueryAsync(cancellationToken).NotOnCapturedContext();
            }
        }
 public static NpgsqlParameter DeletedMessages(PostgresqlStreamId streamId, params Guid[] messageIds)
 {
     return(new NpgsqlParameter <PostgresNewStreamMessage[]>
     {
         TypedValue = Array.ConvertAll(
             messageIds,
             messageId => PostgresNewStreamMessage.FromNewStreamMessage(
                 Deleted.CreateMessageDeletedMessage(streamId.IdOriginal, messageId))
             )
     });
 }