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));
            }
        }
예제 #2
0
        public async Task <IActionResult> Authenticate(UserLoginRequestViewModel userParam)
        {
            var user = await _usersService.Authenticate(userParam.Email, userParam.Password);

            if (user == null)
            {
                return(BadRequest(new { message = "Email or password incorrect" }));
            }

            return(Ok(user));
        }
예제 #3
0
        public async Task Authenticate_WithGivenViewModel_Calls_UserService()
        {
            //Arrange
            var user = new UserLoginRequestViewModel
            {
                Email    = "*****@*****.**",
                Password = AllMarkt.Tools.Hash.ComputeSha256Hash("123456")
            };

            //Act
            var result = await _usersController.Authenticate(user);

            //Assert
            _mockUserService.Verify(x => x.Authenticate(user.Email, user.Password), Times.Once);
        }
예제 #4
0
        public IActionResult Authenticate([FromBody] UserLoginRequestViewModel inputModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(new ApiBadRequestResponse(ModelState)));
                }

                ResponseViewModel <UserLoginResponseViewModel> response = userService.Authenticate(inputModel);

                if (response.Status)
                {
                    return(Ok(new ApiOkResponse((int)HttpStatusCode.OK, true, response.Message, response.Result)));
                }
                else
                {
                    return(Ok(new ApiBadResponse(response.StatusCode, response.Status, response.Message, "", response.Errors)));
                }
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null)
                {
                    loggerService.LogError(1, "## [UserController][Authenticate] innerexception :" + ex.InnerException.ToString());

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

                var Message = errorMessageService.GetErrorMessagesData("501");
                return(StatusCode((int)HttpStatusCode.InternalServerError, new ApiInternalServerErrorResponse((int)HttpStatusCode.InternalServerError, false, Message, "")));
            }
        }
예제 #5
0
        public async Task <InpowerResult> Login(UserLoginRequestViewModel model, string Url)
        {
            InpowerResult resp = null;

            try
            {
                resp = await _helper.Post <UserLoginRequestViewModel>(model, Url);

                return(resp);
            }
            catch (Exception ex)
            {
                CrashReportService crashReport = new CrashReportService();
                CrashReportModel   CR          = new CrashReportModel();
                CR.Filename  = "Registration";
                CR.Eventname = "AccountService";
                // CR.UserID = GlobalClass.UserID == null ? "0" : GlobalClass.UserID;
                CR.ErrorMsg = ex.Message + ex.StackTrace;
                await crashReport.SendCrashReport(CR, GlobalConstant.CrashUrl);

                return(resp);
            }
        }
예제 #6
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);
        }