コード例 #1
0
ファイル: MessageConsumer.cs プロジェクト: 2garryn/wpay
        public async Task Consume(ConsumeContext <AccountCreated> context)
        {
            //var ser = JsonSerializer.Serialize(context.Message);
            var acc = context.Message.Event.To();

            Console.WriteLine($"Receive created account with {acc.Id.Value.Value} with convId = {context.ConversationId} ");

            var createTran = new CreateTransaction(
                acc.Id,
                new TransactionId(UniqId.New()),
                new TransactionLabel("user2user_source"),
                new CreateAmountCompletedIncome(AmountFactory.New("10.00", CurrencyFactory.New("MXN"))),
                "asdasd"
                );
            await context.Publish(CreateTransactionCommand.From(createTran));

            createTran = new CreateTransaction(
                acc.Id,
                new TransactionId(UniqId.New()),
                new TransactionLabel("user2user_destination"),
                new CreateAmountCompletedIncome(AmountFactory.New("10.00", CurrencyFactory.New("MXN"))),
                "asdasd"
                );
            await context.Publish(CreateTransactionCommand.From(createTran));
        }
コード例 #2
0
 public static Amount New(string amount, string currency) => New(amount, CurrencyFactory.New(currency));
コード例 #3
0
 public static Amount NewZero(string currency) => NewZero(CurrencyFactory.New(currency));
コード例 #4
0
 public static Amount New(decimal amount, string currency) => new Amount(amount, CurrencyFactory.New(currency));
コード例 #5
0
ファイル: CreateAccountCommand.cs プロジェクト: 2garryn/wpay
 public CreateAccount To() =>
 new CreateAccount(
     new AccountId(new UniqId(Id)),
     CurrencyFactory.New(Currency),
     Locked
     );
コード例 #6
0
ファイル: User2UserService.cs プロジェクト: 2garryn/wpay
        public async Task Execute()
        {
            var bus = Bus.Factory.CreateUsingRabbitMq(sbc =>
            {
                sbc.Host(new Uri(_rabbitHost), host =>
                {
                    host.Username(_rabbitUsername);
                    host.Password(_rabbitPassword);
                });
                sbc.ReceiveEndpoint(_rabbitEndpoint + "_account", ep =>
                {
                    ep.Consumer(() => new AccountMessageConsumer());

                    /*
                     *                  ep.Bind("core_transaction_created", s =>
                     *                  {
                     *                      s.RoutingKey = "user2user_source_asd";
                     *                      s.ExchangeType = "direct";
                     *                  });
                     *
                     *
                     */
                });
                sbc.ReceiveEndpoint(_rabbitEndpoint + "_transaction", ep =>
                {
                    ep.Consumer(() => new TransactionMessageConsumer());
                    ep.Bind("core_transaction_created", s =>
                    {
                        s.RoutingKey   = "user2user_source";
                        s.ExchangeType = "direct";
                    });
                    ep.Bind("core_transaction_created", s =>
                    {
                        s.RoutingKey   = "user2user_destination";
                        s.ExchangeType = "direct";
                    });
                });
            });

            await bus.StartAsync(); // This is important!

            var accId  = new AccountId(Models.UniqId.New());
            var create = new CreateAccount(
                accId,
                CurrencyFactory.New("MXN"),
                false
                );
            var convId = Guid.NewGuid();

            Console.WriteLine($"Publish create account with {accId.Value.Value} with convId = {convId} ");
            //await bus.Publish(CreateAccountCommand.From(create), context => context.ConversationId = convId);



            //await bus.Publish(new Message { Text = "Hi", MyInt = new Message2 {Text2 = "sometined2", SomeInt = 123} });

            //  Console.WriteLine("Press any key to exit");
            // await Task.Run(() => Console.ReadKey());

            // await bus.StopAsync();
        }