public ViewComponentInvoker( IViewComponentHelper viewComponentHelper, ILogger <ViewComponentInvoker> logger) { _viewComponentHelper = viewComponentHelper; _logger = logger; }
public QueryTagHelperInLine(IHtmlHelper html, IHttpContextAccessor httpAccessor, IViewComponentHelper component, IUrlHelperFactory urlHelperFactory, IStringLocalizerFactory factory) : base(html, httpAccessor, component, urlHelperFactory, factory) { }
public async Task <IHtmlContent> RenderAsync(IViewComponentHelper component, string mywidget) { var componentType = _widgetOptions.Widgets.Single(w => w.Name.Equals(mywidget)).ViewComponentType; var args = new object(); return(await component.InvokeAsync(componentType, args)); }
/// <summary> /// Render component to string /// </summary> /// <param name="componentName">Component name</param> /// <param name="arguments">Arguments</param> /// <returns>Result</returns> protected virtual string RenderViewComponentToString(string componentName, object arguments = null) { //original implementation: https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.ViewFeatures/Internal/ViewComponentResultExecutor.cs //we customized it to allow running from controllers //TODO add support for parameters (pass ViewComponent as input parameter) if (string.IsNullOrEmpty(componentName)) { throw new ArgumentNullException(nameof(componentName)); } IActionContextAccessor actionContextAccessor = HttpContext.RequestServices.GetService(typeof(IActionContextAccessor)) as IActionContextAccessor; if (actionContextAccessor == null) { throw new Exception("IActionContextAccessor cannot be resolved"); } ActionContext context = actionContextAccessor.ActionContext; ViewComponentResult viewComponentResult = ViewComponent(componentName, arguments); ViewDataDictionary viewData = this.ViewData; if (viewData == null) { throw new NotImplementedException(); //TODO viewData = new ViewDataDictionary(_modelMetadataProvider, context.ModelState); } ITempDataDictionary tempData = this.TempData; if (tempData == null) { throw new NotImplementedException(); //TODO tempData = _tempDataDictionaryFactory.GetTempData(context.HttpContext); } using (StringWriter writer = new StringWriter()) { ViewContext viewContext = new ViewContext( context, NullView.Instance, viewData, tempData, writer, new HtmlHelperOptions()); // IViewComponentHelper is stateful, we want to make sure to retrieve it every time we need it. IViewComponentHelper viewComponentHelper = context.HttpContext.RequestServices.GetRequiredService <IViewComponentHelper>(); (viewComponentHelper as IViewContextAware)?.Contextualize(viewContext); System.Threading.Tasks.Task <Microsoft.AspNetCore.Html.IHtmlContent> result = viewComponentResult.ViewComponentType == null? viewComponentHelper.InvokeAsync(viewComponentResult.ViewComponentName, viewComponentResult.Arguments) : viewComponentHelper.InvokeAsync(viewComponentResult.ViewComponentType, viewComponentResult.Arguments); result.Result.WriteTo(writer, HtmlEncoder.Default); return(writer.ToString()); } }
public async Task <IHtmlContent> ContentAsync(IViewComponentHelper helper) { var actionContext = _actionContextAccessor.ActionContext; var viewComponentName = actionContext.RouteData.DataTokens["ViewComponent"] as string; var compositeValueProvider = await CompositeValueProvider.CreateAsync(actionContext, _optionsAccessor.Value.ValueProviderFactories); var pluginViewComponent = _viewComponentSelector.SelectComponent(viewComponentName); var parameterBinder = ActivatorUtilities.CreateInstance <ParameterBinder>(_serviceProvider); var parameterBag = new Dictionary <string, object>(); foreach (var parameter in pluginViewComponent.Parameters) { var parameterDescriptor = new ParameterDescriptor { BindingInfo = BindingInfo.GetBindingInfo(parameter.GetCustomAttributes()), Name = parameter.Name, ParameterType = parameter.ParameterType, }; var result = await parameterBinder.BindModelAsync( actionContext, compositeValueProvider, parameterDescriptor); parameterBag[parameter.Name] = result.IsModelSet ? result.Model : null; } return(await helper.InvokeAsync(viewComponentName, parameterBag)); }
public WidgetProvider( IRazorViewEngine viewEngine, IRazorPageActivator pageActivator, ITempDataProvider tempDataProvider, IServiceProvider serviceProvider, IModelMetadataProvider modelMetadataProvider, IHttpContextAccessor httpContextAccessor, IViewComponentHelper componentHelper, IEnumerable <IWidgetNamedModelProvider> namedModelProviders, IContextAccessor <SiteContext> siteContextAccessor, IContextAccessor <UserContext> userContextAccessor, PluginContext pluginContext ) { _viewEngine = viewEngine; _pageActivator = pageActivator; _tempDataProvider = tempDataProvider; _serviceProvider = serviceProvider; _modelMetadataProvider = modelMetadataProvider; _componentHelper = componentHelper as DefaultViewComponentHelper; _httpContextAccessor = httpContextAccessor; _siteContextAccessor = siteContextAccessor; _userContextAccessor = userContextAccessor; _pluginContext = pluginContext; _namedModelProviders = namedModelProviders; Widgets = pluginContext.GetData <WidgetConfig>(); }
public PlaceholderRenderer(ICompositeViewEngine viewEngine, IViewComponentHelper viewComponentHelper, ISitecoreService sitecoreService, IOptions <ApiSettings> apiSettings) { _viewEngine = viewEngine; _viewComponentHelper = viewComponentHelper; _sitecoreService = sitecoreService; _baseAddress = new Uri(new Uri(apiSettings.Value.BaseUrl), apiSettings.Value.PageDataApiPath); }
public SimpleLinkGrid(IContainer container) { container.Add(this); viewComponentHelper = new ViewComponentHelper(this); InitializeComponent(); }
public static Task <IHtmlContent> Breadcrumb(this IViewComponentHelper componentHelper, string title, Dictionary <string, string> hrefAndName = null) { if (hrefAndName == null) { hrefAndName = new Dictionary <string, string>(); } return(componentHelper.InvokeAsync("Breadcrumb", new BreadcumbModel(title, hrefAndName))); }
public HtmlString RenderForKeyAsHtmlString(IViewComponentHelper component, string host, string key, string title = "", bool loadondemand = false) { StringBuilder sb = new StringBuilder(); StringWriter writer = new StringWriter(sb); component.InvokeAsync("HelpInstruction", new { apirooturl = _apirooturl, hostkey = host, datakey = key, label = title, ondemand = loadondemand }).Result.WriteTo(writer, HtmlEncoder.Default); return(new HtmlString(writer.ToString())); }
public ContentPageTagHelper ( IViewComponentHelper componentHelper, ContentManager contentManager ) { _componentHelper = componentHelper as DefaultViewComponentHelper; _contentManager = contentManager; }
//public Dictionary<int, string> ImageKeysOnUpdate //{ // get { return imageKeysOnUpdate; } // set { imageKeysOnUpdate = value; } //} public AssessmentDBCheckBox() : base() { myHelper = new ViewComponentHelper(this); this.CheckBoxes = true; this.MultiSelect = false; this.View = View.Details; this.ItemCheck += new ItemCheckEventHandler(AssessmentCheckBox_ItemCheck); }
public ViewInvoker( IViewComponentHelper viewComponentHelper, IPartialInvoker partialInvoker, ILogger <ViewInvoker> logger) { _viewComponentHelper = viewComponentHelper; _partialInvoker = partialInvoker; _logger = logger; }
public ViewComponentManager(IViewComponentSelector viewComponentSelector, IViewComponentHelper viewComponentHelper, IActionContextAccessor actionContextAccessor, IViewAccountant viewAccountant, ITempDataProvider tempDataProvider, ILocalFileProvider localFileProvider) { _viewComponentSelector = viewComponentSelector; _viewComponentHelper = viewComponentHelper; _actionContextAccessor = actionContextAccessor; _viewAccountant = viewAccountant; _tempDataProvider = tempDataProvider; _localFileProvider = localFileProvider; }
/// <summary> /// Invokes a view component of type <typeparamref name="TComponent"/>. /// </summary> /// <param name="helper">The <see cref="IViewComponentHelper"/>.</param> /// <typeparam name="TComponent">The <see cref="Type"/> of the view component.</typeparam> /// <returns>A <see cref="Task"/> that on completion returns the rendered <see cref="IHtmlContent" />. /// </returns> public static Task <IHtmlContent> InvokeAsync <TComponent>(this IViewComponentHelper helper) { if (helper == null) { throw new ArgumentNullException(nameof(helper)); } return(helper.InvokeAsync(typeof(TComponent), arguments: null)); }
public static Task RenderInvokeAsync <TComponent>(this IViewComponentHelper helper, params object[] args) { if (helper == null) { throw new ArgumentNullException(nameof(helper)); } return(helper.RenderInvokeAsync(typeof(TComponent), args)); }
public ContentEmbeddedTagHelper( IViewComponentHelper componentHelper, SiteContext siteContext, ConnectDbContext connectDb ) { _componentHelper = componentHelper as DefaultViewComponentHelper; _siteContext = siteContext; _connectDb = connectDb; }
public async Task <IHtmlContent> InvokeAsync(IViewComponentHelper helper, string name, object arguments = null) { if (Disabled() != null && Disabled().Contains(name)) { return(await Task.FromResult(new HtmlString(""))); } return(Exists(name) ? await helper.InvokeAsync(name, arguments) : await Task.FromResult(GetContent(name))); }
public ContextualizedHelpers(ViewContext context, IHtmlHelper html, IHttpContextAccessor httpAccessor, IViewComponentHelper component, IUrlHelperFactory urlHelperFactory, IStringLocalizerFactory localizerFactory = null) { _html = html; _component = component; this._context = context; this.urlHelperFactory = urlHelperFactory; _httpContext = httpAccessor.HttpContext; _user = _httpContext.User; LocalizerFactory = localizerFactory; }
public static HtmlString Invoke <TComponent>(this IViewComponentHelper helper, params object[] args) { if (helper == null) { throw new ArgumentNullException(nameof(helper)); } return(helper.Invoke(typeof(TComponent), args)); }
public static void RenderInvoke <TComponent>(this IViewComponentHelper helper, params object[] args) { if (helper == null) { throw new ArgumentNullException(nameof(helper)); } helper.RenderInvoke(typeof(TComponent), args); }
public SearchModalTagHelper( IStringLocalizer <SharedResource> localizer, IViewComponentHelper viewComponentHelper, IHtmlGenerator generator ) { _localizer = localizer; _viewComponentHelper = viewComponentHelper; Generator = generator; }
public QueryTagHelperBase(IHtmlHelper html, IHttpContextAccessor httpAccessor, IViewComponentHelper component, IUrlHelperFactory urlHelperFactory, IStringLocalizerFactory factory) { this.httpAccessor = httpAccessor; this.html = html; this.component = component; this.urlHelperFactory = urlHelperFactory; this.factory = factory; }
public static async Task <IHtmlContent> Component(this IViewComponentHelper viewComponentHelper, string moduleName, string viewComponentName) { if (InvocationHub.IsModuleInDebugMode()) { return(await viewComponentHelper.InvokeAsync(viewComponentName)); } else { return(await viewComponentHelper.InvokeAsync("Renderer", new { moduleName, viewComponentName })); } }
public ContextualizedHelpers(ViewContext context, IHtmlHelper html, IPrincipal user, IViewComponentHelper component, IUrlHelper urlHelper, IStringLocalizerFactory localizerFactory) { _html = html; _component = component; this._context = context; _htmlIsContextualized = true; _componentIsContextualized = true; _user = user; _httpContext = context.HttpContext; _urlHelper = urlHelper; LocalizerFactory = localizerFactory; }
public DetailTagHelper(Microsoft.Extensions.Options.IOptions <MvcViewOptions> optionsAccessor, IHtmlHelper html, IHttpContextAccessor httpAccessor, IViewComponentHelper component, IUrlHelperFactory urlHelperFactory, IStringLocalizerFactory factory) : base(factory) { IdAttributeDotReplacement = optionsAccessor.Value.HtmlHelperOptions.IdAttributeDotReplacement; this.html = html; this.httpAccessor = httpAccessor; this.component = component; this.urlHelperFactory = urlHelperFactory; this.factory = factory; }
public static Task <IHtmlContent> InvokeLayoutHookAsync( this IViewComponentHelper componentHelper, string name, string layout) { return(componentHelper.InvokeAsync( typeof(LayoutHookViewComponent), new { name = name, layout = layout } )); }
public GridTagHelper(IOptions<MvcViewOptions> optionsAccessor, IHtmlHelper html, IHttpContextAccessor httpAccessor, IViewComponentHelper component, IUrlHelperFactory urlHelperFactory, IStringLocalizerFactory factory) { IdAttributeDotReplacement = optionsAccessor.Value.HtmlHelperOptions.IdAttributeDotReplacement; this.html = html; this.httpAccessor = httpAccessor; this.component = component; this.urlHelperFactory = urlHelperFactory; this.factory = factory; }
/// <summary> /// Рендеринг текста с зонами, объявленных в контенте в виде [[zone=имя_зоны]] /// </summary> /// <param name="helper"></param> /// <param name="componentHelper"></param> /// <param name="text"></param> /// <param name="arguments"></param> /// <returns></returns> public static async Task <IHtmlContent> RenderZonesInText(this IViewComponentHelper componentHelper, IHtmlHelper helper, string text, IDictionary <string, object> arguments = null) { if (!zonesInTextRegex.IsMatch(text)) { return(new HtmlString(text)); } var matches = zonesInTextRegex.Matches(text); //наполним словарь для замены зон в тексте на их содержимое var dictionary = new Dictionary <string, string>(); foreach (Match match in matches) { if (match.Groups.Count > 1) { var group = match.Groups[1]; if (group.Success) { var zoneName = group.Value; if (!string.IsNullOrEmpty(zoneName) && !dictionary.ContainsKey(match.Value)) { var widgetContent = await componentHelper.WidgetZone(helper, zoneName, arguments); using (var sw = new StringWriter()) { widgetContent.WriteTo(sw, HtmlEncoder.Default); dictionary[match.Value] = sw.ToString(); } } } } } //делаем замены var result = zonesInTextRegex.Replace(text, (match => { if (match.Groups.Count > 1) { var group = match.Groups[1]; if (group.Success) { return(dictionary[match.Value]); } } return(string.Empty); })); return(new HtmlString(result)); }
public async static Task <IHtmlContent> MotleyFlash( this IViewComponentHelper value, string view = null) { if (string.IsNullOrWhiteSpace(view)) { return(await value.InvokeAsync <MotleyFlashViewComponent>(new MotleyFlashViewComponentOptions())); } else { return(await value.InvokeAsync <MotleyFlashViewComponent>(new MotleyFlashViewComponentOptions() { View = view })); } }
/// <summary> /// Initialize a <see cref="RegisterProviderOutput"/>. /// </summary> protected RegisterProviderOutput( ViewDataDictionary viewData, IHtmlGenerator htmlGenerator, IModelExpressionProvider modelExpressionProvider, ViewContext originalViewContext, IJsonHelper jsonHelper, IViewComponentHelper viewComponentHelper, IUrlHelper urlHelper) { ViewData = viewData; Generator = htmlGenerator; ModelExpressionProvider = modelExpressionProvider; ViewContext = new ViewContext(originalViewContext, originalViewContext.View, viewData, originalViewContext.Writer); Json = jsonHelper; Component = viewComponentHelper; Url = urlHelper; }
public ViewComponentResultExecutor( IOptions <MvcViewOptions> mvcHelperOptions, IViewComponentHelper viewComponentHelper, ILoggerFactory loggerFactory, HtmlEncoder htmlEncoder, IModelMetadataProvider modelMetadataProvider, ITempDataDictionaryFactory tempDataDictionaryFactory) { if (mvcHelperOptions == null) { throw new ArgumentNullException(nameof(mvcHelperOptions)); } if (viewComponentHelper == null) { throw new ArgumentNullException(nameof(viewComponentHelper)); } if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } if (htmlEncoder == null) { throw new ArgumentNullException(nameof(htmlEncoder)); } if (modelMetadataProvider == null) { throw new ArgumentNullException(nameof(modelMetadataProvider)); } if (tempDataDictionaryFactory == null) { throw new ArgumentNullException(nameof(tempDataDictionaryFactory)); } _htmlHelperOptions = mvcHelperOptions.Value.HtmlHelperOptions; _viewComponentHelper = viewComponentHelper; _logger = loggerFactory.CreateLogger <ViewComponentResult>(); _htmlEncoder = htmlEncoder; _modelMetadataProvider = modelMetadataProvider; _tempDataDictionaryFactory = tempDataDictionaryFactory; }
public ViewComponentResultExecutor( IOptions<MvcViewOptions> mvcHelperOptions, IViewComponentHelper viewComponentHelper, ILoggerFactory loggerFactory, HtmlEncoder htmlEncoder, IModelMetadataProvider modelMetadataProvider, ITempDataDictionaryFactory tempDataDictionaryFactory) { if (mvcHelperOptions == null) { throw new ArgumentNullException(nameof(mvcHelperOptions)); } if (viewComponentHelper == null) { throw new ArgumentNullException(nameof(viewComponentHelper)); } if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } if (htmlEncoder == null) { throw new ArgumentNullException(nameof(htmlEncoder)); } if (modelMetadataProvider == null) { throw new ArgumentNullException(nameof(modelMetadataProvider)); } if (tempDataDictionaryFactory == null) { throw new ArgumentNullException(nameof(tempDataDictionaryFactory)); } _htmlHelperOptions = mvcHelperOptions.Value.HtmlHelperOptions; _viewComponentHelper = viewComponentHelper; _logger = loggerFactory.CreateLogger<ViewComponentResult>(); _htmlEncoder = htmlEncoder; _modelMetadataProvider = modelMetadataProvider; _tempDataDictionaryFactory = tempDataDictionaryFactory; }
public async Task <IHtmlContent> InvokeAsync(IViewComponentHelper helper, string name, object arguments = null) { if (Disabled() != null && Disabled().Contains(name)) { return(await Task.FromResult(new HtmlString(""))); } try { return(Exists(name) ? await helper.InvokeAsync(name, arguments) : await Task.FromResult(new HtmlString(""))); } catch (System.Exception ex) { this.logger.LogError($"Error loading widget: {ex.Message}"); return(await Task.FromResult(new HtmlString(""))); } }
public ShapeishTagHelper(IViewComponentHelper viewComponentHelper) { _viewComponentHelper = viewComponentHelper; }
public BulkHelper() { helper = new NonControlViewComponentHelper(this); }
public SimpleLinkGrid() { viewComponentHelper = new ViewComponentHelper(this); InitializeComponent(); }
private Task<IHtmlContent> GetViewComponentResult(IViewComponentHelper viewComponentHelper, ILogger logger, ViewComponentResult result) { if (result.ViewComponentType == null && result.ViewComponentName == null) { throw new InvalidOperationException(Resources.FormatViewComponentResult_NameOrTypeMustBeSet( nameof(ViewComponentResult.ViewComponentName), nameof(ViewComponentResult.ViewComponentType))); } else if (result.ViewComponentType == null) { logger.ViewComponentResultExecuting(result.ViewComponentName); return viewComponentHelper.InvokeAsync(result.ViewComponentName, result.Arguments); } else { logger.ViewComponentResultExecuting(result.ViewComponentType); return viewComponentHelper.InvokeAsync(result.ViewComponentType, result.Arguments); } }
public StaticNumberTagHelper(IViewComponentHelper viewComponentHelper) : base(viewComponentHelper) { }
public PagerTagHelper( IHtmlHelper html, IHttpContextAccessor httpAccessor, IViewComponentHelper component, IUrlHelperFactory urlHelperFactory, IStringLocalizerFactory factory) { this.html = html; this.httpAccessor = httpAccessor; this.component = component; this.urlHelperFactory = urlHelperFactory; this.factory = factory; }
public ClassificationRule(IContainer container) { container.Add(this); currentRules = new ClassificationDisplayRules(); viewComponentHelper = new ViewComponentHelper(this); InitializeComponent(); dataGridView1.CellClick += new DataGridViewCellEventHandler(dataGridView1_CellClick); }