private static void Run(string commandLine)
        {
            ChassisManagerUserOptions userOption = null;

            try
            {
                userOption = new ChassisManagerCommandInputReader <ChassisManagerUserOptions>().ReadInput(commandLine);
            }
            catch (InputReaderExceptionHandlerException e)
            {
                Console.WriteLine(e.Message);
                ShowUsage();
                return;
            }

            if (userOption.InputProcessed == 0)
            {
                ShowUsage();
                return;
            }

            if (userOption.CommandOption.Distinct().ToList().Count() >= 1 && userOption.Help)
            {
                // Display command help for individual command
                // Execute the User option
                if (userOption.CommandOption.Count() > 0)
                {
                    List <string> distinct = userOption.CommandOption.Distinct().ToList();

                    foreach (string value in distinct)
                    {
                        ShowCommandUsage(value);
                    }
                }
            }
            else if (userOption.Help)
            {
                ShowUsage();
            }
            else
            {
                // Loop through and execute the command
                List <string> distinct = userOption.CommandOption.Distinct().ToList();

                foreach (string value in distinct)
                {
                    //verify user input
                    if (IsValidateParameter(value, userOption.CommandVaue))
                    {
                        CommandFetcher.ExecuteUserCommand(value, userOption.CommandVaue);
                    }
                    else
                    {
                        ShowCommandUsage(value);
                    }
                }
            }
        }
        private static void Run(string commandLine)
        {
            ChassisManagerUserOptions userOption = null;

            try
            {
                userOption = new ChassisManagerCommandInputReader<ChassisManagerUserOptions>().ReadInput(commandLine);
            }
            catch (InputReaderExceptionHandlerException e)
            {
                Console.WriteLine(e.Message);
                ShowUsage();
                return;
            }

            if (userOption.InputProcessed == 0)
            {
                ShowUsage();
                return;
            }

            if (userOption.CommandOption.Distinct().ToList().Count() >= 1 && userOption.Help)
            {
                // Display command help for individual command
                // Execute the User option
                if (userOption.CommandOption.Count() > 0)
                {
                    List<string> distinct = userOption.CommandOption.Distinct().ToList();

                    foreach (string value in distinct)
                    {
                        ShowCommandUsage(value);
                    }
                }
            }
            else if (userOption.Help)
            {
                ShowUsage();
            }
            else
            {
                // Loop through and execute the command
                List<string> distinct = userOption.CommandOption.Distinct().ToList();

                foreach (string value in distinct)
                {
                    //verify user input
                    if (IsValidateParameter(value, userOption.CommandVaue))
                    {
                        CommandFetcher.ExecuteUserCommand(value, userOption.CommandVaue);
                    }
                    else
                    {
                        ShowCommandUsage(value);
                    }
                }
            }
        }