Beispiel #1
0
        public async Task <IActionResult> Login([FromBody] LoginModel loginModel)
        {
            var validationResult = _loginValidator.Validate(loginModel);

            if (!validationResult.IsValid)
            {
                return(BadRequest(new ApiResponse
                {
                    Status = HttpStatusCode.BadRequest,
                    Errors = validationResult.GetFieldLevelErrors()
                }));
            }

            var isAuthenticated = await _accountLogic.Authenticate(loginModel);

            if (!isAuthenticated)
            {
                return(StatusCode((int)HttpStatusCode.OK, new AccountModel {
                    UserName = loginModel.UserName
                }));
            }

            var accountModel = await _accountLogic.GetUserRoleAndCentre(loginModel.UserName);

            accountModel.Token = _tokenLogic.Generate(accountModel);

            return(Ok(accountModel));
        }