예제 #1
0
        public async Task <LoginResult> LoginUserAsync(string usernameOrEmail, string password)
        {
            var success = await _userDbManager.LoginAsync(usernameOrEmail, password);

            if (success)
            {
                var user = await _userDbManager.GetUserByUsernameAsync(usernameOrEmail) ?? await _userDbManager.GetUserByEmailAsync(usernameOrEmail);

                if (user == null)
                {
                    return(new LoginResult("User not found"));
                }

                if (!user.IsActive)
                {
                    return(new LoginResult("User not actived"));
                }

                if (user.IsBlocked)
                {
                    return(new LoginResult("User blocked"));
                }

                return(new LoginResult(user.Id));
            }

            return(new LoginResult("Login failed"));
        }