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));
            }
        }
Example #2
0
        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;
            }
        }
Example #3
0
        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);
        }