private async Task AppendAsyncCore(IMessage message, ITransaction transaction, CancellationToken cancellationToken) { var data = await _serializer.SerializeAsync(message, cancellationToken); var entity = new Entities.OutboxMessage(message.Id, data, message.GetType().FullName, MessageStatuses.Pending.ToString()); if (transaction is MongoTransaction mongoTransaction && mongoTransaction.Session is not null) { await _dbContext.Outbox.InsertOneAsync(mongoTransaction.Session, entity, null, cancellationToken) .ConfigureAwait(false); }
private async Task AppendAsyncCore(IMessage message, CancellationToken cancellationToken) { var serialized = await _serializer.SerializeAsync(message, cancellationToken); var entity = new Entities.OutboxMessage(message.Id, serialized, message.GetType().FullName) { Status = MessageStatuses.Pending.ToString() }; _dbContext.OutboxMessages.Add(entity); await _dbContext.SaveChangesAsync(cancellationToken) .ConfigureAwait(false); }
private async Task AppendAsyncCore(IMessage message, CancellationToken cancellationToken) { var data = await _serializer.SerializeAsync(message, cancellationToken); var entity = new Entities.OutboxMessage(message.Id, data.ToArray(), message.GetType().FullName, MessageStatuses.Pending.ToString()); if (_dbContext.Transaction?.Session != null) { await _dbContext.Outbox.InsertOneAsync(_dbContext.Transaction.Session, entity, null, cancellationToken) .ConfigureAwait(false); } else { await _dbContext.Outbox.InsertOneAsync(entity, null, cancellationToken) .ConfigureAwait(false); } }