public async Task <DepositOutput> Handle( DepositCommand command, CancellationToken token) { var validationResult = await new DepositValidation() .ValidateAsync( command, token); if (!validationResult.IsValid) { return(new DepositOutput( null, validationResult)); } var account = await _read .GetOne( (Guid)command.AccountNumber, token); if (account == null) { _logger.LogError("Account with {0}" + " account number doesn't exist", command.AccountNumber); throw new AccountNotExistException( $"Account with {command.AccountNumber}" + $" account number doesn't exist"); } account .Deposit((decimal)command.Amount); await _write .UnitOfWork .SaveEntitiesAsync(token); return(new DepositOutput( account.Balance, validationResult)); }
public async Task <GetOneOutput> Handle( GetOneQuery query, CancellationToken token) { var validationResult = await new GetOneValidation() .ValidateAsync(query, token); if (!validationResult.IsValid) { return(new GetOneOutput( null, null, null, validationResult)); } var account = await _read.GetOne( (Guid)query.AccountNumber, token); if (account == null) { _logger.LogError("Account with {0}" + " account number doesn't exist", query.AccountNumber); throw new AccountNotExistException( $"Account with {query.AccountNumber}" + $" account number doesn't exist"); } return(new GetOneOutput( account.AccountName, account.AccountNumber, account.Balance, validationResult)); }