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();
        }