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