public async Task ParseAndValidateAsync() { _parserService.ParseAndValidate(Environment.GetCommandLineArgs()); var commandArgData = _parserService.GetArgumentValue(_commandArg); var command = commandArgData.GetValue <string>().ToLower(); var ospCommand = _commands.FirstOrDefault(c => c.CommandValue.ToLower() == command); if (ospCommand == null) { throw new InvalidProgramException($"Command value '{command}' is invalid."); } await ospCommand.PreValidate(); await ospCommand.Execute(); }