private void editPreviewCodeActivity_ExecuteCode(object sender, EventArgs e) { var serviceContainer = WorkflowFacade.GetFlowControllerServicesContainer(WorkflowEnvironment.WorkflowInstanceId); var webRenderService = serviceContainer.GetService <IFormFlowWebRenderingService>(); try { var selectedPage = GetBinding <IPage>("SelectedPage"); var contents = new List <IPagePlaceholderContent>(); var namedXhtmlFragments = GetBinding <Dictionary <string, string> >("NamedXhtmlFragments"); foreach (var placeHolderContent in namedXhtmlFragments) { var content = DataFacade.BuildNew <IPagePlaceholderContent>(); content.PageId = selectedPage.Id; content.VersionId = selectedPage.VersionId; content.PlaceHolderId = placeHolderContent.Key; content.Content = placeHolderContent.Value; contents.Add(content); } var output = PagePreviewBuilder.RenderPreview(selectedPage, contents); webRenderService.SetNewPageOutput(new LiteralControl(output)); } catch (Exception ex) { Control errOutput = new LiteralControl("<pre>" + ex + "</pre>"); webRenderService.SetNewPageOutput(errOutput); } }
private void editPreviewCodeActivity_ExecuteCode(object sender, EventArgs e) { try { XhtmlDocument templateDocument = GetTemplateDocumentFromBindings(); IVisualFunction function = this.GetBinding <IVisualFunction>("Function"); Type interfaceType = TypeManager.GetType(function.TypeManagerName); DataTypeDescriptor typeDescriptor = DynamicTypeManager.GetDataTypeDescriptor(interfaceType); this.LogMessage(Composite.Core.Logging.LogLevel.Info, DataScopeManager.CurrentDataScope.Name); FunctionContextContainer fcc = PageRenderer.GetPageRenderFunctionContextContainer(); XhtmlDocument result = RenderingHelper.RenderCompleteDataList(function, templateDocument, typeDescriptor, fcc); IPage previewPage = DataFacade.BuildNew <IPage>(); previewPage.Id = GetRootPageId(); previewPage.Title = function.Name; previewPage.DataSourceId.DataScopeIdentifier = DataScopeIdentifier.Administrated; previewPage.DataSourceId.LocaleScope = LocalizationScopeManager.CurrentLocalizationScope; previewPage.TemplateId = this.GetBinding <Guid>("PreviewTemplateId"); var pageTemplate = PageTemplateFacade.GetPageTemplate(previewPage.TemplateId); IPagePlaceholderContent placeHolderContent = DataFacade.BuildNew <IPagePlaceholderContent>(); placeHolderContent.Content = string.Concat((result.Body.Elements().Select(b => b.ToString())).ToArray()); placeHolderContent.PlaceHolderId = pageTemplate.DefaultPlaceholderId; string output = PagePreviewBuilder.RenderPreview(previewPage, new List <IPagePlaceholderContent> { placeHolderContent }); var serviceContainer = WorkflowFacade.GetFlowControllerServicesContainer(WorkflowEnvironment.WorkflowInstanceId); var webRenderService = serviceContainer.GetService <IFormFlowWebRenderingService>(); webRenderService.SetNewPageOutput(new LiteralControl(output)); } catch (Exception ex) { FlowControllerServicesContainer serviceContainer = WorkflowFacade.GetFlowControllerServicesContainer(WorkflowEnvironment.WorkflowInstanceId); Control errOutput = new LiteralControl("<pre>" + ex + "</pre>"); var webRenderService = serviceContainer.GetService <IFormFlowWebRenderingService>(); webRenderService.SetNewPageOutput(errOutput); } }