private EventData[] CreateValidatorEventsData() { var command = new ValidateTransferCommand { Header = new MessageHeader(Guid.NewGuid().ToString(), nameof(ValidateTransferCommand), nameof(Sources.Validator)), Content = new ValidateTransferCommandContent { Transaction = new TransactionDetails { AccountFromId = Guid.NewGuid().ToString(), AccountToId = Guid.NewGuid().ToString(), Amount = 100.00M } } }; string serializedMsg = JsonConvert.SerializeObject(command); byte[] messageBytes = Encoding.UTF8.GetBytes(serializedMsg); return(new EventData[] { new EventData(messageBytes) }); }
public static async Task <ActivityResult <ProducerResult> > ProduceValidateTransferCommandAsync( TransactionItem item, IDurableOrchestrationContext context, ILogger log) { ValidateTransferCommand command = CommandFactory.BuildValidateTransferCommand(item); string functionName = nameof(ProducerActivity.ValidateTransferCommandProducerActivity); return(await RunProducerActivityAsync(functionName, command, context, log)); }
public static async Task <ProducerResult> ValidateTransferCommandProducerActivity( [EventHub(@"%ValidatorEventHubName%", Connection = @"EventHubsNamespaceConnection")] IAsyncCollector <EventData> messagesCollector, [ActivityTrigger] ValidateTransferCommand command, ILogger log) { Producer producer = new Producer(messagesCollector, log); return(await producer.ProduceCommandWithRetryAsync(command)); }
public void Validate_command_should_be_built_with_valid_payload() { var item = new TransactionItem { Id = Guid.NewGuid().ToString(), AccountFromId = Guid.NewGuid().ToString(), AccountToId = Guid.NewGuid().ToString(), Amount = 100.00M, State = SagaState.Pending.ToString() }; ValidateTransferCommand validateTransferCommand = CommandFactory.BuildValidateTransferCommand(item); Assert.NotNull(validateTransferCommand); Assert.Equal(validateTransferCommand.Header.TransactionId, item.Id); Assert.Equal(nameof(ValidateTransferCommand), validateTransferCommand.Header.MessageType); Assert.Equal(nameof(Sources.Orchestrator), validateTransferCommand.Header.Source); }