public void CreateNewUser()
        {
            bool   validInput = true;
            string username;

            do
            {
                username   = ExtraUtilities.GetStringAnswer("Choose Username");
                validInput = sqlAccess.ValidUsername(username);
            } while (validInput == false);
            string password    = ExtraUtilities.GetStringAnswer("Choose Password");
            string name        = ExtraUtilities.GetStringAnswer("Choose display name");
            int    age         = ExtraUtilities.GetIntAnswer("Age");
            string sex         = ExtraUtilities.GetStringAnswer("What sex do you identify as?");
            string attractedTo = ExtraUtilities.GetStringAnswer("What sex/sexes are you attracted to? Seperate by \", \"", true);
            int    height      = ExtraUtilities.GetIntAnswer("How tall are you? In cm");
            string skinColor   = ExtraUtilities.GetStringAnswer("What is your ethnicity?");
            string hairColor   = ExtraUtilities.GetStringAnswer("What is your hair color?");
            string eyeColor    = ExtraUtilities.GetStringAnswer("What color are your eyes?");
            string interest    = ExtraUtilities.GetStringAnswer("What are your interest? Seperate by \", \"", true);

            sqlAccess.RunNonquery($"INSERT INTO [Security] VALUES ('{username}', '{password}')");
            sqlAccess.RunNonquery($"INSERT INTO [Profile] VALUES ('{username}', '{name}', {age}, '{sex}', '{attractedTo}', {height}, '{skinColor}', '{hairColor}', '{eyeColor}', '{interest}')");

            age         = ExtraUtilities.GetIntAnswer("What age people are you looking for, minimum will be set to 18");
            sex         = attractedTo;
            attractedTo = sex;
            height      = ExtraUtilities.GetIntAnswer("How tall should they be? In cm");
            skinColor   = ExtraUtilities.GetStringAnswer("What ethnicity? Seperate by \", \"", true);
            hairColor   = ExtraUtilities.GetStringAnswer("What hair colors? Seperate by \", \"", true);
            eyeColor    = ExtraUtilities.GetStringAnswer("What color eyes? Seperate by \", \"", true);
            interest    = ExtraUtilities.GetStringAnswer("What interest shoudl they have? Seperate by \", \"", true);

            sqlAccess.RunNonquery($"INSERT INTO [Preferences] VALUES ('{username}', {age}, '{sex}', '{attractedTo}', {height}, '{skinColor}', '{hairColor}', '{eyeColor}', '{interest}')");
        }
        public string Login()
        {
            string username = "";
            string password = "";

            username = ExtraUtilities.GetStringAnswer("Username");
            string validation = sqlAccess.RunQuery($"SELECT Username FROM [Security] WHERE Username = '******'");

            Console.WriteLine(validation);
            Console.Clear();
            if (validation == "")
            {
                Console.WriteLine("Username doesn't exist you f*****g loser, learn how to spell or make an account");
                Console.ReadKey();
                return(username = "");
            }
            else
            {
                password   = ExtraUtilities.GetStringAnswer("Password");
                validation = sqlAccess.RunQuery($"SELECT Password FROM [Security] WHERE Username = '******'");

                if (password != validation)
                {
                    Console.Clear();
                    Console.WriteLine("Incorrect password, try again.");
                    Console.ReadKey();
                    return("");
                }
            }
            Console.Clear();
            return(username);
        }
        public void FindMatch(Security security, string username)
        {
            Console.Clear();
            Preference     preference    = security.GetUserPreference(username);
            List <Profile> possibleMatch = security.GetUserInfo(preference.Sex, preference.Age, preference.Heigth);

            foreach (Profile item in possibleMatch)
            {
                Console.WriteLine($"Name: {item.Name} Gender: {item.Sex} Age: {item.Age} Height: {item.Heigth} Ethnicity: {ExtraUtilities.StringFromList(item.SkinColor)} Hair Color: {ExtraUtilities.StringFromList(item.HairColor)} Eye Color: {ExtraUtilities.StringFromList(item.EyeColor)} Interest: {ExtraUtilities.StringFromList(item.Interest)}");
            }
            Console.ReadKey();
        }
        public void EditUserPreferences(Security security, string username)
        {
            Console.Clear();
            Console.WriteLine("Choose an option");
            Preference preference = security.GetUserPreference(username);

            string[] options = { "Age", "Sex", "Sexual Orientation", "Height", "Skin color", "Hair color", "Eye color", "Interest" };
            ExtraUtilities.MenuOptions(options);
            Console.WriteLine("0 -> Exit");
            string editString;
            int    editInt;
            char   menuChoice = Console.ReadKey().KeyChar;

            switch (menuChoice)
            {
            case '1':
                editInt = ExtraUtilities.GetIntAnswer($"Your current {options[int.Parse(menuChoice.ToString()) - 1]} preference is set to {preference.Age}. What do you want to change it to? -> ");
                sqlAccess.RunNonquery($"UPDATE [Preferences] SET Age = {editInt} WHERE Username = '******'");
                break;

            case '2':
                editString = ExtraUtilities.GetStringAnswer($"Your current {options[int.Parse(menuChoice.ToString()) - 1]} preference is set to {preference.Sex}. What do you want to change it to? -> ");
                sqlAccess.RunNonquery($"UPDATE [Preferences] SET [Sex] = '{editString}' WHERE Username = '******'");
                break;

            case '3':
                editString = ExtraUtilities.GetStringAnswer($"Your current {options[int.Parse(menuChoice.ToString()) - 1]} preference is set to {ExtraUtilities.StringFromList(preference.AttractedTo)}. What do you want to change it to? Seperate by \", \" -> ", true);
                sqlAccess.RunNonquery($"UPDATE [Preferences] SET [AttractedTo] = '{editString}' WHERE Username = '******'");
                break;

            case '4':
                editInt = ExtraUtilities.GetIntAnswer($"Your current {options[int.Parse(menuChoice.ToString()) - 1]} preference is set to {preference.Heigth}. What do you want to change it to? -> ");
                sqlAccess.RunNonquery($"UPDATE [Preferences] SET [Height] = {editInt} WHERE Username = '******'");
                break;

            case '5':
                editString = ExtraUtilities.GetStringAnswer($"Your current {options[int.Parse(menuChoice.ToString()) - 1]} preference is set to {ExtraUtilities.StringFromList(preference.SkinColor)}. What do you want to change it to? Seperate by \", \" -> ", true);
                sqlAccess.RunNonquery($"UPDATE [Preferences] SET [SkinColor] = '{editString}' WHERE Username = '******'");
                break;

            case '6':
                editString = ExtraUtilities.GetStringAnswer($"Your current {options[int.Parse(menuChoice.ToString()) - 1]} preference is set to {ExtraUtilities.StringFromList(preference.HairColor)}. What do you want to change it to? Seperate by \", \" -> ", true);
                sqlAccess.RunNonquery($"UPDATE [Preferences] SET [HairColor] = '{editString}' WHERE Username = '******'");
                break;

            case '7':
                editString = ExtraUtilities.GetStringAnswer($"Your current {options[int.Parse(menuChoice.ToString()) - 1]} preference is set to {ExtraUtilities.StringFromList(preference.EyeColor)}. What do you want to change it to? Seperate by \", \" -> ", true);
                sqlAccess.RunNonquery($"UPDATE [Preferences] SET [EyeColor] = '{editString}' WHERE Username = '******'");
                break;

            case '8':
                editString = ExtraUtilities.GetStringAnswer($"Your current {options[int.Parse(menuChoice.ToString()) - 1]} preference is set to {ExtraUtilities.StringFromList(preference.Interest)}. What do you want to change it to? Seperate by \", \" -> ", true);
                sqlAccess.RunNonquery($"UPDATE [Preferences] SET [Interest] = '{editString}' WHERE Username = '******'");
                break;

            case 'e':
                break;
            }
            Console.Clear();
            Console.WriteLine("Changes Saved!");
            Console.ReadKey();
        }