/// <summary>
        /// This method is the API method invoked to get the counts of characters in string
        /// </summary>
        /// <param name="userString">user input String to provide character counts</param>
        public static void CountCharacterInString(string userString)
        {
            IEnumerable <char> distinctCharactersList = ExtendedUserUtilities.GenerateDistinctCharacterList
                                                            (userString, characterOperationType);

            CountCharacterOccurancesInString(distinctCharactersList, userString);
        }
        /// <summary>
        /// This method forms the character aray to print triangle by prompting user for Start and End Characters
        /// </summary>
        /// <returns>returns a character array from start character to end character</returns>
        internal static char[] SetCharacterArrayUsingStartEndCharacters()
        {
            var startCharacter = GetCharacterInput("\nPlease enter an input start character : ");

            var endCharacter = GetCharacterInput("\nPlease enter an input end character : ");

            UserInputValidation.ValidateStartAndEndCharacter(startCharacter, endCharacter);

            var characterArray = ExtendedUserUtilities.GenerateCharacterArray(startCharacter, endCharacter);

            return(characterArray);
        }
        /// <summary>
        /// This method displays a triangular output using a character array
        /// </summary>
        public static void PrintTriangularOutput()
        {
            var reverseCharacterArray = ExtendedUserUtilities.GenerateReverseCharacterArray(CharacterArray);

            Console.WriteLine("\n Below is the Output Triangle\n");
            Console.Write(CharacterArray);
            Console.WriteLine(reverseCharacterArray);

            for (int i = CharacterArray.Length - 1, j = 0;
                 i >= 1 || j < reverseCharacterArray.Length - 2; i--, j++)
            {
                CharacterArray[i] = ' ';
                Console.Write(CharacterArray);
                Console.WriteLine(reverseCharacterArray);
                reverseCharacterArray[j] = ' ';
            }
        }
        internal static List <char> GetListOfCharacters(CharacterOperationType characterOperationType)
        {
            var userString = UserInterfaceSetupFunctions.GetUserInputString();

            return(ExtendedUserUtilities.GenerateCharacterList(userString, characterOperationType));
        }