Ejemplo n.º 1
0
    private static IParameterShape CreateNamedCollectionParameterShape
    (
        OptionAttribute optionAttribute,
        RangeAttribute?rangeAttribute,
        ParameterInfo parameter
    )
    {
        var description = parameter.GetDescriptionOrDefault();

        IParameterShape newNamedParameter;

        if (optionAttribute.ShortName is null)
        {
            newNamedParameter = new NamedCollectionParameterShape
                                (
                parameter,
                optionAttribute.LongName ?? throw new InvalidOperationException(),
                rangeAttribute?.GetMin(),
                rangeAttribute?.GetMax(),
                description
                                );
        }
        else if (optionAttribute.LongName is null)
        {
            newNamedParameter = new NamedCollectionParameterShape
                                (
                parameter,
                optionAttribute.ShortName ?? throw new InvalidOperationException(),
                rangeAttribute?.GetMin(),
                rangeAttribute?.GetMax(),
                description
                                );
        }
        else
        {
            newNamedParameter = new NamedCollectionParameterShape
                                (
                parameter,
                optionAttribute.ShortName ?? throw new InvalidOperationException(),
                optionAttribute.LongName ?? throw new InvalidOperationException(),
                rangeAttribute?.GetMin(),
                rangeAttribute?.GetMax(),
                description
                                );
        }

        return(newNamedParameter);
    }
Ejemplo n.º 2
0
    private static IParameterShape CreatePositionalParameterShape
    (
        RangeAttribute?rangeAttribute,
        ParameterInfo parameter
    )
    {
        var description  = parameter.GetDescriptionOrDefault();
        var isCollection = parameter.ParameterType.IsSupportedCollection();

        IParameterShape newPositionalParameter;

        if (!isCollection)
        {
            var greedyAttribute = parameter.GetCustomAttribute <GreedyAttribute>();

            newPositionalParameter = greedyAttribute is null
                ? new PositionalParameterShape(parameter, description)
                : new PositionalGreedyParameterShape(parameter, description);
        }
        else
        {
            newPositionalParameter = new PositionalCollectionParameterShape
                                     (
                parameter,
                rangeAttribute?.GetMin(),
                rangeAttribute?.GetMax(),
                description
                                     );
        }

        return(newPositionalParameter);
    }