public async Task <AccountModifyResult> Handle(AccountModifyCommand command, CancellationToken cancellationToken) { AccountModifyResult logicResult = new AccountModifyResult(); try { AccountFindArgs accountFindArgs = new AccountFindArgs { AccountId = command.Args.AccountId }; AccountFindResult accountFindResult = await _accountRepository.FindAsync(accountFindArgs) .ConfigureAwait(false); accountFindResult.EnsureSuccess(); Account account = Account.Load(accountFindResult.Result); account.Modify(command.Args); AccountUpdateArgs accountUpdateArgs = new AccountUpdateArgs { Account = account }; AccountUpdateResult accountUpdateResult = await _accountRepository.UpdateAsync(accountUpdateArgs) .ConfigureAwait(false); accountUpdateResult.EnsureSuccess(); logicResult.Result = accountUpdateResult.Result; } catch (Exception ex) { logicResult.Exception = ex; } return(logicResult); }
public async Task <AccountFindResult> FindAsync(AccountFindArgs args) { AccountFindResult logicResult = new AccountFindResult(); try { AccountDTO result = await _context.Set <Account>().Where(x => x.AccountId == args.AccountId) .Select(x => x.ToDTO()) .FirstOrDefaultAsync() .ConfigureAwait(false); logicResult.Result = result; } catch (Exception ex) { logicResult.Exception = ex; } return(logicResult); }