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)); }
public static Amount New(string amount, string currency) => New(amount, CurrencyFactory.New(currency));
public static Amount NewZero(string currency) => NewZero(CurrencyFactory.New(currency));
public static Amount New(decimal amount, string currency) => new Amount(amount, CurrencyFactory.New(currency));
public CreateAccount To() => new CreateAccount( new AccountId(new UniqId(Id)), CurrencyFactory.New(Currency), Locked );
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(); }