Example #1
0
        public async Task <IActionResult> SignInAsync(string document, string password)
        {
            HttpStatusCode     statusCode = HttpStatusCode.OK;
            ResponseSignInUser response   = new ResponseSignInUser();

            try
            {
                var result = await _users.LoginAsync(document, password);

                if (result.Succeeded)
                {
                    //Get JWT TOKEN
                    GenerateJWT token          = new GenerateJWT(_configuration);
                    User        usuario        = _users.GetUserByIdentification(document);
                    var         userRegistered = await _userManager.FindByEmailAsync(usuario.Email);

                    response.IdUser = userRegistered.Id.ToString();
                    response.JWT    = token.GenerateTokenUser(userRegistered);
                    return(StatusCode((int)statusCode, response));
                }
                else if (result.IsNotAllowed)
                {
                    response.ErrorMessage = $"Failed to signIn user with identificacion: {document}, signIn is not allowed";
                    response.Errors.Add(response.ErrorMessage);
                }
                else
                {
                    response.ErrorMessage = "Credenciales inválidas";
                    response.Errors.Add(response.ErrorMessage);
                }

                statusCode            = HttpStatusCode.BadRequest;
                response.StatusCode   = (int)statusCode;
                response.IsSucessfull = false;
            }

            catch (DatabaseException e)
            {
                statusCode            = HttpStatusCode.InternalServerError;
                response.StatusCode   = (int)statusCode;
                response.IsSucessfull = false;
                response.ErrorMessage = e.Message;
                _logger.LogError(e, $"Failed to signIn user with identification: {document}");
            }

            catch (Exception e)
            {
                statusCode            = HttpStatusCode.InternalServerError;
                response.StatusCode   = (int)statusCode;
                response.IsSucessfull = false;
                response.ErrorMessage = "Internal server error";
                _logger.LogError(e, $"Failed to signIn user with identification: {document}");
            }

            return(StatusCode((int)statusCode, response));
        }
        public async Task <IActionResult> SignInAsync(RequestIdentityRegister User)
        {
            HttpStatusCode     statusCode = HttpStatusCode.OK;
            ResponseSignInUser response   = new ResponseSignInUser();

            try
            {
                var result = await _signInManager.PasswordSignInAsync(User.Email, User.Password, true, lockoutOnFailure : false);

                if (result.Succeeded)
                {
                    //Get JWT TOKEN
                    GenerateJWT token          = new GenerateJWT(_configuration);
                    var         userRegistered = await _userManager.FindByEmailAsync(User.Email);

                    response.IdUser = userRegistered.Id.ToString();
                    response.JWT    = token.GenerateTokenUser(userRegistered);
                    return(StatusCode((int)statusCode, response));
                }
                else if (result.IsLockedOut)
                {
                    response.ErrorMessage = $"LockedOut account with email {User.Email}";
                }
                else if (result.IsNotAllowed)
                {
                    response.ErrorMessage = $"Failed to signIn user with email {User.Email}, signIn is not allowed";
                }
                else
                {
                    response.ErrorMessage = $"Failed to signIn user with email {User.Email}, invalid credentials";
                }

                statusCode            = HttpStatusCode.BadRequest;
                response.StatusCode   = (int)statusCode;
                response.IsSucessfull = false;
            }
            catch (Exception e)
            {
                statusCode            = HttpStatusCode.InternalServerError;
                response.StatusCode   = (int)statusCode;
                response.IsSucessfull = false;
                response.ErrorMessage = "Internal server error";
                _logger.LogError(e, $"Failed to signIn user with email {User.Email}");
            }

            return(StatusCode((int)statusCode, response));
        }