public Task <ITypeParserResult <Enum> > ParseAsync(string value, IParameter parameter, CommandContext context)
        {
            if (string.IsNullOrWhiteSpace(value))
            {
                ITypeParserResult <Enum> result = new TypeParserFailResult <Enum>();

                return(Task.FromResult(result));
            }

            var config = context.CommandServices.GetRequiredService <IOptions <MariCommandsOptions> >().Value;

            var ignoreCase = IsIgnoreCase(config.Comparison);

            if (Enum.TryParse(parameter.ParameterInfo.ParameterType, value, ignoreCase, out var parseResult))
            {
                ITypeParserResult <Enum> result = TypeParserSuccessResult <Enum> .FromValue(parseResult as Enum);

                return(Task.FromResult(result));
            }
            else
            {
                ITypeParserResult <Enum> result = new TypeParserFailResult <Enum>();

                return(Task.FromResult(result));
            }
        }
        public Task <ITypeParserResult <string> > ParseAsync(string value, IParameter parameter, CommandContext context)
        {
            if (string.IsNullOrWhiteSpace(value))
            {
                ITypeParserResult <string> result = new TypeParserFailResult <string>();

                return(Task.FromResult(result));
            }
            else
            {
                ITypeParserResult <string> result = TypeParserSuccessResult <string> .FromValue(value);

                return(Task.FromResult(result));
            }
        }
Example #3
0
        public Task <ITypeParserResult <T> > ParseAsync(string value, IParameter parameter, CommandContext context)
        {
            if (_tryParseDelegate(value, out var parseResult))
            {
                ITypeParserResult <T> result = TypeParserSuccessResult <T> .FromValue(parseResult);

                return(Task.FromResult(result));
            }
            else
            {
                ITypeParserResult <T> result = new TypeParserFailResult <T>();

                return(Task.FromResult(result));
            }
        }