public async Task <AccountModel> Create(TransientAccountModel model)
        {
            var account = _factory.Build(model.HolderFirstName, model.HolderLastName);

            _repository.UnitOfWork.Add(account);
            await _repository.UnitOfWork.CommitAsync();

            var result = _mapper.Map(account);

            await _bus.Queue(result, "AccountCreated");

            return(result);
        }
        protected override async Task <AccountModel> HandleCore(CreateAccountCommand request)
        {
            var account = factory.Build(new AccountHolder(new FirstName(request.FirstName), new LastName(request.LastName)));

            unitOfWork.Add(account);
            await unitOfWork.CommitAsync();

            return(new AccountModel()
            {
                AccountId = account.Id,
                Balance = account.Balance.Amount,
                Currency = account.Balance.Currency.ToString(),
                LastName = account.Holder.LastName,
                FirstName = account.Holder.FirstName
            });
        }