Ejemplo n.º 1
0
        public void Bootstrap()
        {
            IEventStoreConnection esConnection = EventStoreConnection.Create("ConnectTo=tcp://admin:changeit@localhost:1113");

            conn = new EventStoreConnectionWrapper(esConnection);
            esConnection.Connected += (_, __) => Console.WriteLine("Connected");
            esConnection.ConnectAsync().Wait();
            IStreamNameBuilder namer = new PrefixedCamelCaseStreamNameBuilder();
            IEventSerializer   ser   = new JsonMessageSerializer();

            repo       = new StreamStoreRepository(namer, conn, ser);
            cmdHandler = new AccountCommandHandler(repo);
            AccountAggregate acct = null;

            try
            {
                var command = new CreateAccountCommand()
                {
                    AccountId  = _accountId,
                    HolderName = _holderName
                };
                cmdHandler.Handle(command);
            }
            catch (Exception e)
            {
            }
            listener   = new StreamListener("AccountAggregate", conn, namer, ser);
            _readModel = new BalanceReadModel(() => listener);
        }
Ejemplo n.º 2
0
 public void GetAccount(AccountAggregate account)
 {
     holderName             = account.HolderName;
     overDraftLimit         = account.OverDraftLimit;
     dailyWireTransferLimit = account.DailyWireTransferLimit;
     balance = account.Balance;
     state   = account.State;
 }
Ejemplo n.º 3
0
        public void redraw(AccountAggregate account = null)
        {
            ///Console.Clear();

            if (account != null)
            {
                GetAccount(account);
            }

            //Console.WriteLine($"Holder's name = { holderName }");
            //Console.WriteLine($"OverDraftLimit = { overDraftLimit }");
            //Console.WriteLine($"DailyWireTransferLimit = { dailyWireTransferLimit }");
            //Console.WriteLine($"Balance = { balance }");
            //Console.WriteLine($"State = { state }");
        }
        public CommandResponse Handle(CreateAccountCommand command)
        {
            try
            {
                if (_repository.TryGetById <AccountAggregate>(command.AccountId, out var _))
                {
                    throw new ValidationException("An account with this ID already exists");
                }
                if (string.IsNullOrWhiteSpace(command.HolderName))
                {
                    throw new ValidationException("HolderName can't be empty");
                }

                var account = new AccountAggregate(command.AccountId, command.HolderName, command);
                _repository.Save(account);
                return(command.Succeed());
            }
            catch (Exception e)
            {
                return(command.Fail(e));
            }
        }