public List <UserMock> GenerateMockUsers()
        {
            //salt generation

            var userList = new List <UserMock>();
            var userMock = new UserMock()
            {
                username   = "******",
                password   = hashPassword("doctor"),
                permission = "user"
            };
            var auditorMock = new UserMock()
            {
                username   = "******",
                password   = hashPassword("auditor"),
                permission = "auditor"
            };
            var adminMock = new UserMock()
            {
                username   = "******",
                password   = hashPassword("admin"),
                permission = "admin"
            };

            userList.Add(userMock);
            userList.Add(auditorMock);
            userList.Add(adminMock);

            return(userList);
        }
        public LoginValidationResponse ValidateLoginRequest(LoginValidationRequest loginValidationRequest)
        {
            var loginValidationResponse = new LoginValidationResponse();
            var usersList = new UserMock().GenerateMockUsers();

            var checkIfUserExists = usersList.Find(x => x.username == loginValidationRequest.username);

            if (checkIfUserExists != null)
            {
                var hashedProvidedPassword = encryptionProvidedPasswordUsingActualSaltPassword(loginValidationRequest.password, checkIfUserExists.password);
                if (comperePasswordsHash(hashedProvidedPassword, Convert.FromBase64String(checkIfUserExists.password)) == true)
                {
                    loginValidationResponse.username    = checkIfUserExists.username;
                    loginValidationResponse.permissions = checkIfUserExists.permission;
                    loginValidationResponse.status      = "OK";
                }
                else
                {
                    loginValidationResponse.username    = checkIfUserExists.username;
                    loginValidationResponse.permissions = "Denied";
                    loginValidationResponse.status      = "Wrong Password";
                }
            }
            else
            {
                loginValidationResponse.username    = loginValidationRequest.username;
                loginValidationResponse.permissions = "Denied";
                loginValidationResponse.status      = "The user does not exist";
            }

            return(loginValidationResponse);
        }