public async Task <IActionResult> Get([FromQuery] CostsFilterOptions queryParams) { try { Token token = (Token)this.HttpContext.Items["Token"]; logger.Info("New request from userId: " + token.data.user.id + " arrived to obtain Costs for his Organization"); if (!queryParams.HasOptions()) { logger.Error("Missing required query paramteters on url"); throw new ArgumentException("Missing required query parameters"); } logger.Debug("Querying service for a report from: " + queryParams.From.ToShortDateString() + " To: " + queryParams.To.ToShortDateString() + " for organizationId: " + token.data.organizationId); List <MonthCost> result = this.costService.GetCosts( queryParams.From, queryParams.To, token.data.organizationId ); return(Ok(result)); } catch (ArgumentException exception) { return(BadRequest(exception.Message)); } catch (Exception e) { return(BadRequest(e.Message)); } }
public async Task <ICommandResult> Handler(AuthenticateUserCommand command) { try { _logger?.Info("Autenticando usuário."); string token = await _service.AuthenticateAsync(command.Email, command.Password); if (token == null) { _logger?.Warn("Usuário não autenticado."); return(new CommandResult(false, Messages.USER_AUTHENTICATE_FAILED, null)); } _logger?.Info("Usuário autenticado com sucesso."); return(new CommandResult(true, Messages.USER_AUTHENTICATE_SUCCESS, token)); } catch (Exception ex) { _logger?.Error(ex.Message.ToLower()); // return new CommandResult(false, "Internal Server Error", null); throw ex; } }
public async Task <String> AuthenticateAsync(string email, string password) { _logger?.Info("Obtendo o usuário."); User user = await _userManager.FindByEmailAsync(email); if (user == null) { _logger?.Warn("Usuário não encontrado na base de dados."); return(null); } _logger?.Info("Usuário foi encontrado."); _logger?.Info("validando a senha."); if (await _userManager.CheckPasswordAsync(user, password)) { _logger?.Info("Senha é válida."); _logger?.Info("Gerando Jwt Token."); IList <string> roles = await _userManager.GetRolesAsync(user); IList <Claim> claims = await _userManager.GetClaimsAsync(user); claims.Add(new Claim(ClaimTypes.Role, roles.Join(", "))); user.AddClaims(claims); Token token = await _tokenService.GenerateToken(user); if (token != null) { _logger?.Info("Token gerado com sucesso."); _logger?.Info("Retornando token."); return(token.AccessToken); } _logger?.Info("Falha ao gerar token."); return(null); } _logger?.Warn("Senha não é válida para esse usuário."); return(null); }