public async Task <Unit> Handle(SendAuthorizationCodeCommand request, CancellationToken cancellationToken) { var account = await _repository.GetAccountByEmail(request.Email, cancellationToken) ?? throw new NotFoundException("There is no account registered by that email", new { request.Email }); var authorizationCode = RandomCodeGenerator.GenerateRandomCode(30, false); account.Codes.Add(new AccountAuthorizationCode { Account = account, Active = true, Code = BC.HashPassword(authorizationCode), Generated = DateTime.Now } ); await _emailManager.SendAuthorizationCode( request.Email, account.Username, authorizationCode, _context.GetUserAgentAsString(), _context.GetRequestIpAsString(), cancellationToken ); _repository.Update(account); return(Unit.Value); }