public virtual bool Validate()
        {
            // validate all options, not valid if one fails
            List <IOption> opt = SelectableCliOptions.Where(x => x.IsValid == false && x.IsAssigned == true).ToList();

            if (opt == null || opt.Count == 0)
            {
                return(true);
            }

            return(false);
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="key"></param>
 /// <returns></returns>
 protected IOption GetOption(string key)
 {
     return(SelectableCliOptions.FirstOrDefault(x => string.Equals(x.Name, key, StringComparison.OrdinalIgnoreCase)));
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="key"></param>
 /// <returns></returns>
 protected object GetOptionValue(string key)
 {
     return(SelectableCliOptions.FirstOrDefault(x => string.Equals(x.Name, key, StringComparison.OrdinalIgnoreCase) && x.IsAssigned)?.GetValue());
 }