public async Task <IActionResult> CreateUser([FromBody] User user)
        {
            if (user == null)
            {
                return(BadRequest());
            }

            try
            {
                user.Password = "******";
                await _context.Users.AddAsync(user);

                await _context.SaveChangesAsync();

                var userRegistered = await _context.Users.SingleOrDefaultAsync(u => u.Email == user.Email);

                var userLogged = new UserLoginResponseViewModel()
                {
                    Id    = userRegistered.Id,
                    Name  = userRegistered.Name,
                    Email = userRegistered.Email,
                    Token = GenerateToken(),
                };

                return(Ok(userLogged));
            }
            catch (DbUpdateException e)
            {
                return(Conflict(e));
            }
        }
        public async Task <IActionResult> LoginUser([FromBody] UserLoginRequestViewModel userLogin)
        {
            try
            {
                var user = await _context.Users.AsNoTracking().SingleOrDefaultAsync(u => u.Email == userLogin.Email && u.Password == userLogin.Password);

                if (user.Email == null)
                {
                    return(Unauthorized());
                }

                var userLogged = new UserLoginResponseViewModel()
                {
                    Id    = user.Id,
                    Name  = user.Name,
                    Email = user.Email,
                    Token = GenerateToken(),
                };

                return(Ok(userLogged));
            }
            catch (Exception e)
            {
                return(Unauthorized(e));
            }
        }
Ejemplo n.º 3
0
        public string GetIdToken(UserLoginResponseViewModel user)
        {
            var payload = new Dictionary <string, object>
            {
                { "id", user.userid },
                { "sub", user.email },
                { "email", user.email },
                //  { "emailConfirmed", user.EmailConfirmed },
            };

            return(GetToken(payload));
        }
Ejemplo n.º 4
0
        public async Task Authenticate_WithGivenViewModel_Returns_OkObjectResult()
        {
            //Arrange
            var user = new UserLoginResponseViewModel
            {
                Email       = "*****@*****.**",
                DisplayName = "UserTest"
            };

            _mockUserService
            .Setup(x => x.Authenticate(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Task.FromResult(user));

            //Act
            var result = await _usersController.Authenticate(new UserLoginRequestViewModel()) as ObjectResult;

            //Assert
            result.Should().NotBeNull();
            result.Should().BeOfType <OkObjectResult>();
        }
Ejemplo n.º 5
0
        public ResponseViewModel <UserLoginResponseViewModel> Authenticate(UserLoginRequestViewModel inputModel)
        {
            ResponseViewModel <UserLoginResponseViewModel> response = new ResponseViewModel <UserLoginResponseViewModel>();
            List <Error> _lstError = new List <Error>();
            UserLoginResponseViewModel _objUserLoginResponseViewModel = new UserLoginResponseViewModel();

            try
            {
                var finduser = _userRepository.FindByEmail(inputModel.email);
                if (finduser != null)
                {
                    if (!_securityHelper.VerifyPasswordHash(inputModel.password, finduser.PasswordHash, finduser.PasswordSalt))
                    {
                        var errorMessage = _errorMessageService.GetErrorMessagesData("115");
                        var objError     = new Error {
                            Code = "115", Message = errorMessage
                        };
                        _lstError.Add(objError);
                    }
                    else
                    {
                        string accessToken = _securityHelper.GetAccessToken(inputModel.email);
                        _objUserLoginResponseViewModel.email     = finduser.Email;
                        _objUserLoginResponseViewModel.firstname = finduser.FirstName;
                        _objUserLoginResponseViewModel.lastname  = finduser.LastName;
                        _objUserLoginResponseViewModel.userid    = finduser.UserId;
                        _objUserLoginResponseViewModel.token     = accessToken;
                    }
                }
                else
                {
                    var errorMessage = _errorMessageService.GetErrorMessagesData("115");
                    var objError     = new Error {
                        Code = "115", Message = errorMessage
                    };
                    _lstError.Add(objError);
                }

                if (_lstError.Count == 0)
                {
                    response.Status     = true;
                    response.Message    = "User authenticated sucessfully";
                    response.StatusCode = (int)HttpStatusCode.OK;
                    response.Result     = _objUserLoginResponseViewModel;
                }
                else
                {
                    response.Status     = false;
                    response.Errors     = _lstError;
                    response.StatusCode = (int)HttpStatusCode.BadRequest;
                }
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null)
                {
                    _loggerService.LogError(1, "## [UserService][Authenticate] innerexception :" + ex.InnerException.ToString());

                    if (ex.InnerException.Message != null)
                    {
                        _loggerService.LogError(1, "## [UserService][Authenticate] innerexception message :" + ex.InnerException.Message.ToString());
                    }
                }
                else
                {
                    _loggerService.LogError(1, "## [UserService][Authenticate] exception :" + ex.Message.ToString());
                }

                response.Status     = false;
                response.Message    = _errorMessageService.GetErrorMessagesData("501");
                response.StatusCode = (int)HttpStatusCode.BadRequest;
            }
            return(response);
        }