Exemplo n.º 1
0
        public async Task <IActionResult> GetUser(ReturnedUserVM userVM)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    throw new Exception("Something went wrong. Please try again.");
                }

                var user = await _service.FindUser(userVM.UserId, userVM.UserToken);

                if (user.ErrorMessage == null)
                {
                    return(Ok(user));
                }

                if (user.ErrorMessage.Contains("found"))
                {
                    return(NotFound(user.ErrorMessage));
                }
                else if (user.ErrorMessage.Contains("verify"))
                {
                    return(Unauthorized(user.ErrorMessage));
                }
                else
                {
                    throw new Exception(user.ErrorMessage);
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> SignOut(ReturnedUserVM userVM)
        {
            var result = await _service.LogOutUser(userVM.UserId, userVM.UserToken);

            if (result.Success != null)
            {
                return(Ok(result.Success));
            }
            else
            {
                return(BadRequest(result.Failed));
            }
        }
Exemplo n.º 3
0
        public async Task <ReturnedUserVM> LogInUser(LoginUser10 user10)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(user10.Password) || string.IsNullOrWhiteSpace(user10.UserName))
                {
                    throw new Exception("Username or password was incorrect.");
                }

                var user = await _userManager.FindByNameAsync(user10.UserName);

                if (user == null)
                {
                    throw new Exception("No user with the selected username exists.");
                }

                var result = await _signInManager.PasswordSignInAsync(user.UserName, user10.Password, false, false);

                if (result.Succeeded)
                {
                    ReturnedUserVM returnedUser = new ReturnedUserVM
                    {
                        UserId = user.Id,

                        FrontEndToken = VerificationToken(),

                        UserToken = await _userManager.GenerateUserTokenAsync(user, "Default", "authentication-backend"),

                        Roles = await _userManager.GetRolesAsync(user)
                    };

                    return(returnedUser);
                }
                else if (result.IsLockedOut)
                {
                    throw new Exception("User is locked out. Please try again later.");
                }
                else
                {
                    throw new Exception("Username or password was incorrect.");
                }
            }
            catch (Exception ex)
            {
                ReturnedUserVM returnedUser = new ReturnedUserVM
                {
                    ErrorMessage = ex.Message
                };
                return(returnedUser);
            }
        }