public Task CreateActivities(int number) { var tasks = new Task[number]; for (int i = 0; i < number; i++) { AccountCreatedMessage message = new AccountCreatedMessage(i, $"User {i}", "UserRef {i}"); var messageContext = new FakeMessage <AccountCreatedMessage>(message, Guid.NewGuid().ToString()); MessageContextProvider.StoreMessageContext(messageContext); tasks[i] = ActivitySaver .SaveActivity(message, ActivityType.AccountCreated) .ContinueWith(t => CreatedActivities.Add(t.Result)) .ContinueWith(t => MessageContextProvider.ReleaseMessageContext(messageContext)); } return(Task.WhenAll(tasks) .ContinueWith(task => { Assert.IsTrue(tasks.All(t => t.IsCompleted), "At least one creation task did not complete"); var firstFaulted = tasks.FirstOrDefault(t => t.IsFaulted); if (firstFaulted != null) { Assert.Fail($"At least one creation task faulted.{firstFaulted.Exception.Flatten().Message}"); } Assert.AreEqual(number, CreatedActivities.Count, "Incorrect number of accounts created"); })); }
public static async Task PublishAccountCreatedAsync( this IServiceBusClient serviceBusClient, AccountCreatedMessage account) { await serviceBusClient.PublishAsync( account, AccountServiceBusConstants.AccountCreatedLabel, AccountServiceBusConstants.AccountTopicName); }
protected override async Task <GetAccountDto> ExecuteAsync(CreateAccountCommand request, CancellationToken ct) { CreateAccountDto createAccountDto = _mapper.Map <CreateAccountDto>(request); GetAccountDto accountDto = await _accountService.AddAsync(createAccountDto, ct); AccountCreatedMessage accountCreatedMessage = _mapper.Map <AccountCreatedMessage>(accountDto); await _serviceBusClient.PublishAccountCreatedAsync(accountCreatedMessage); return(accountDto); }
private async Task Approve(BaseRequestStatusUpdatedMessage message, ExchangeratRequest request) { if (message == null || request == null) { throw new ArgumentNullException(); } request.Status = Status.Approved; object messageData = null; if (message.RequestType == "Create Account") { messageData = new AccountCreatedMessage() { UserId = message.UserId, AccountTypeId = message.AccountTypeId.Value }; } else if (message.RequestType == "Block Account") { messageData = new AccountBlockedMessage() { UserId = message.UserId, AccountId = message.AccountId.Value }; } else if (message.RequestType == "Close Account") { messageData = new AccountDeletedMessage() { UserId = message.UserId, AccountId = message.AccountId.Value }; } var messageToStore = new Message(messageData); await this.Save(request, messageToStore); await this.publisher.Publish(messageData); await this.MarkMessageAsPublished(messageToStore.Id); }