protected void bntMerge_Click(object sender, EventArgs e) { PDFWorkflowObject pdfWorkflowObject = new PDFWorkflowObject(); pdfWorkflowObject.LavaInput = ceLava.Text; pdfWorkflowObject.MergeObjects = new Dictionary <string, object>(); if (cbCurrentPerson.Checked) { pdfWorkflowObject.MergeObjects.Add("CurrentPerson", CurrentPerson); } if (cbGlobal.Checked) { pdfWorkflowObject.MergeObjects.Add("GlobalAttributes", GlobalAttributesCache.Read()); } Guid workflowTypeGuid = Guid.NewGuid(); if (Guid.TryParse(GetAttributeValue("WorkflowType"), out workflowTypeGuid)) { var workflowRockContext = new RockContext(); var workflowTypeService = new WorkflowTypeService(workflowRockContext); var workflowType = workflowTypeService.Get(workflowTypeGuid); if (workflowType != null) { var workflow = Workflow.Activate(workflowType, "PDFLavaWorkflow"); List <string> workflowErrors; var workflowService = new WorkflowService(workflowRockContext); var workflowActivity = GetAttributeValue("WorkflowActivity"); var activityType = workflowType.ActivityTypes.Where(a => a.Name == workflowActivity).FirstOrDefault(); if (activityType != null) { WorkflowActivity.Activate(activityType, workflow, workflowRockContext); if (workflowService.Process(workflow, pdfWorkflowObject, out workflowErrors)) { //success } } } } RockContext rockContext = new RockContext(); BinaryFileService binaryFileService = new BinaryFileService(rockContext); pdfWorkflowObject.RenderedPDF.FileName = "LavaGeneratedPDF.pdf"; binaryFileService.Add(pdfWorkflowObject.RenderedPDF); rockContext.SaveChanges(); Response.Redirect(pdfWorkflowObject.RenderedPDF.Path); }
protected void bntMerge_Click(object sender, EventArgs e) { var rockContext = new RockContext(); //Get the mergefields and pdf BinaryFileService binaryFileService = new BinaryFileService(rockContext); Dictionary <string, object> mergeFields = GetMergeFields(); BinaryFile pdf = binaryFileService.Get(int.Parse(fpSelectedFile.SelectedValue)); //Create the object we will need to pass to the workflow if (pdf != null && mergeFields.Count > 0) { var pdfEntity = new PDFWorkflowObject(); pdfEntity.PDF = pdf; pdfEntity.MergeObjects = mergeFields; Guid workflowTypeGuid = Guid.NewGuid(); if (Guid.TryParse(GetAttributeValue("WorkflowType"), out workflowTypeGuid)) { var workflowRockContext = new RockContext(); var workflowTypeService = new WorkflowTypeService(workflowRockContext); var workflowType = workflowTypeService.Get(workflowTypeGuid); if (workflowType != null) { var workflow = Workflow.Activate(workflowType, pdf.FileName); List <string> workflowErrors; var workflowService = new WorkflowService(workflowRockContext); var workflowActivity = GetAttributeValue("WorkflowActivity"); var activityType = workflowType.ActivityTypes.Where(a => a.Name == workflowActivity).FirstOrDefault(); if (activityType != null) { WorkflowActivity.Activate(activityType, workflow, workflowRockContext); if (workflowService.Process(workflow, pdfEntity, out workflowErrors)) { //success } } } } var mergedPDF = pdfEntity.PDF; //mergedPDF.Guid = Guid.NewGuid(); binaryFileService.Add(mergedPDF); rockContext.SaveChanges(); Response.Redirect(mergedPDF.Path); } }