private string GetShortName()
        {
            string attributeShortName = AttributeProvider.GetCustomAttribute <OptionAttribute>()?.ShortName;

            if (!string.IsNullOrEmpty(attributeShortName)) //provided by user
            {
                return(attributeShortName);
            }

            //use parameter name as short name
            return(PropertyOrArgumentName.Length == 1 ? PropertyOrArgumentName.ChangeCase(Settings.Case) : null);
        }
        private string GetLongName()
        {
            string attributeLongName = AttributeProvider.GetCustomAttribute <OptionAttribute>()?.LongName;

            if (!string.IsNullOrEmpty(attributeLongName)) //long name attribute provided by user
            {
                return(attributeLongName);
            }

            //short name is not present,
            if (string.IsNullOrEmpty(ShortName) && PropertyOrArgumentName.Length > 1)
            {
                return(PropertyOrArgumentName.ChangeCase(Settings.Case)); //return parameter name as long name
            }
            //there is no long name
            return(null);
        }