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); }
public void GetAccount(AccountAggregate account) { holderName = account.HolderName; overDraftLimit = account.OverDraftLimit; dailyWireTransferLimit = account.DailyWireTransferLimit; balance = account.Balance; state = account.State; }
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)); } }