public PageJavaScriptProjection Create(IPage page, IEnumerable <IOptionValue> options) { IJavaScriptAccessor jsAccessor = null; Type pageType; if (page is IProxy) { pageType = page.GetType().BaseType; } else { pageType = page.GetType(); } string key = "JAVASCRIPTRENDERER-" + pageType.Name.ToUpperInvariant(); if (containerProvider.CurrentScope.IsRegisteredWithKey <IJavaScriptAccessor>(key)) { jsAccessor = containerProvider.CurrentScope .ResolveKeyed <IJavaScriptAccessor>(key, new Parameter[] { new PositionalParameter(0, page), new PositionalParameter(1, options) }); } if (jsAccessor == null) { throw new CmsException(string.Format("No page javascript accessor was found for the page type {0}.", pageType.FullName)); } var jsProjection = new PageJavaScriptProjection(page, jsAccessor); return(jsProjection); }
public PageJavaScriptProjection(SerializationInfo info, StreamingContext context) { page = (IPage)info.GetValue("page", typeof(IPage)); jsAccessor = (IJavaScriptAccessor)info.GetValue("jsAccessor", typeof(IJavaScriptAccessor)); }
public PageJavaScriptProjection(IPage page, IJavaScriptAccessor jsAccessor) { this.page = page; this.jsAccessor = jsAccessor; }