コード例 #1
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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);
        }