internal static List <EnvironmentVariable> GetEnvironmentVariables(this BaseCliArguments cliArguments)
 {
     return(cliArguments.GetType().GetRuntimeProperties()
            .Where(prop => prop.GetEnvironmentVariableDefinition() != null)
            .Select(prop => new EnvironmentVariable(prop))
            .ToList());
 }
 internal static List <Operand> GetOperands(this BaseCliArguments cliArguments)
 {
     return(cliArguments.GetType().GetRuntimeProperties()
            .Where(prop => prop.GetOperandDefinition() != null)
            .Select(prop => new Operand(prop))
            .ToList());
 }
 internal ArgumentModel(BaseCliArguments cliArguments)
 {
     CliArguments         = cliArguments;
     Options              = cliArguments.GetOptions();
     Operands             = cliArguments.GetOperands();
     EnvironmentVariables = cliArguments.GetEnvironmentVariables();
     Help       = cliArguments.GetHelpAttribute();
     HelpFacade = new HelpFacade(cliArguments);
 }
 static Assembly MainAssembly(BaseCliArguments cliModel)
 {
     return(cliModel.GetType().GetTypeInfo().Assembly);
 }
 internal static HelpAttribute GetHelpAttribute(this BaseCliArguments cliArguments)
 {
     return(cliArguments.GetType().GetTypeInfo()
            .GetHelp());
 }