public DefaultServerAutocompleteProcessor(TagHelperContext context, TagHelperOutput output, AutocompleteTagHelper tag, AutocompleteOptions options) { this.context = context; this.output = output; this.tag = tag; this.options = options; }
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { if (DisplayProperty == null && (DisplayPropertyExplorer == null || DisplayPropertyExpressionOverride==null)) new ArgumentNullException("display-property/display-expression-override+display-explorer"); if (For == null && (ForPropertyExplorer == null || ForExpressionOverride == null)) new ArgumentNullException("asp-for/for-expression-override+for-explorer"); if (string.IsNullOrWhiteSpace(ItemsDisplayProperty)) new ArgumentNullException("items-display-property"); if (string.IsNullOrWhiteSpace(ItemsValueProperty)) new ArgumentNullException("items-value-property"); if (string.IsNullOrWhiteSpace(ItemsUrl)) new ArgumentNullException("items-url"); if (string.IsNullOrWhiteSpace(UrlToken)) new ArgumentNullException("url-token"); if (string.IsNullOrWhiteSpace(DataSetName)) new ArgumentNullException("dataset-name"); if (MaxResults == 0) MaxResults=20; if (MinChars == 0) MinChars = 3; var currProvider = ViewContext.TagHelperProvider(); var resolver = jsonOptions.SerializerSettings.ContractResolver as DefaultContractResolver; var vd = ViewContext.ViewData; var options = new AutocompleteOptions { Generator = generator, PropertyResolver = resolver != null ? resolver.GetResolvedPropertyName : new Func<string, string>(x => x), ForcedValueName = currProvider.GenerateNames ? vd.GetFullHtmlFieldName(ForExpressionOverride ?? For.Name) : null, ForcedDisplayName = currProvider.GenerateNames ? vd.GetFullHtmlFieldName(DisplayPropertyExpressionOverride ?? DisplayProperty.Name) : null, NoId= !currProvider.GenerateNames || ViewContext.IsFilterRendering() }; await currProvider.GetTagProcessor(TagName)(context, output, this, options, null); }