public void CreateProcessTemplateExecutorTest() { IWfProcessDescriptor processDesp = CreateTestProcessDescriptor(); WfSaveTemplateExecutor executor = new WfSaveTemplateExecutor(processDesp); executor.Execute(); Assert.AreEqual(WfDesignerOperationType.CreateTemplate, executor.OperationType); IWfProcessDescriptor loadedProcessDesp = WfProcessDescriptorManager.LoadDescriptor(processDesp.Key); Assert.AreEqual(processDesp.Key, loadedProcessDesp.Key); }
public void ProcessRequest(HttpContext context) { string json = context.Request["info"]; string processID = context.Request["processID"]; context.Response.ContentType = "text/plain"; WfConverterHelper.RegisterConverters(); List<WfProcessDescriptor> deserializedProcessDesp; IWfProcess process = null; if (!string.IsNullOrEmpty(processID)) { process = WorkflowSettings.GetConfig().GetPersistManager().LoadProcessByProcessID(processID); } try { deserializedProcessDesp = JSONSerializerExecute.Deserialize<List<WfProcessDescriptor>>(json); } catch (Exception ex) { context.Response.Write("反序列化错误:" + ex.Message + ex.StackTrace); return; } try { foreach (var descriptor in deserializedProcessDesp) { if (process != null && descriptor.Key == process.Descriptor.Key) { process.Descriptor = descriptor; WorkflowSettings.GetConfig().GetPersistManager().SaveProcess(process); } else { WfSaveTemplateExecutor executor = new WfSaveTemplateExecutor(descriptor); executor.Execute(); } } } catch (Exception ex) { context.Response.Write("保存错误:" + ex.Message + ex.StackTrace); return; } context.Response.Write("保存成功!"); }
public void ModifyProcessTemplateExecutorTest() { IWfProcessDescriptor processDesp = CreateTestProcessDescriptor(); WfSaveTemplateExecutor createExecutor = new WfSaveTemplateExecutor(processDesp); createExecutor.Execute(); WfSaveTemplateExecutor modifyExecutor = new WfSaveTemplateExecutor(processDesp); //再保存一次,变成修改操作 modifyExecutor.Execute(); Assert.AreEqual(WfDesignerOperationType.ModifyTemplate, modifyExecutor.OperationType); IWfProcessDescriptor loadedProcessDesp = WfProcessDescriptorManager.LoadDescriptor(processDesp.Key); Assert.AreEqual(processDesp.Key, loadedProcessDesp.Key); }
public void DeleteProcessTemplateExecutorTest() { IWfProcessDescriptor processDesp = CreateTestProcessDescriptor(); WfSaveTemplateExecutor createExecutor = new WfSaveTemplateExecutor(processDesp); createExecutor.Execute(); WfDeleteTemplateExecutor deleteExecutor = new WfDeleteTemplateExecutor(processDesp.Key); deleteExecutor.Execute(); Assert.AreEqual(WfDesignerOperationType.DeleteTemplate, deleteExecutor.OperationType); try { IWfProcessDescriptor loadedProcessDesp = WfProcessDescriptorManager.LoadDescriptor(processDesp.Key); throw new ApplicationException("不应该加载到已经删除的流程"); } catch (SystemSupportException) { } }
public void ImportProcessTemplateExecutorTest() { IWfProcessDescriptor processDesp = CreateTestProcessDescriptor(); WfSaveTemplateExecutor createExecutor = new WfSaveTemplateExecutor(processDesp); createExecutor.Execute(); MemoryStream stream = new MemoryStream(); WfProcessExporter.ExportProcessDescriptors(new WfExportProcessDescriptorParams(), stream, processDesp.Key); stream.Seek(0, SeekOrigin.Begin); WfImportTemplateExecutor importTemplateExecutor = new WfImportTemplateExecutor(stream); importTemplateExecutor.Execute(); Assert.AreEqual(1, importTemplateExecutor.ImportedProcesses.Count); Assert.AreEqual(processDesp.Key, importTemplateExecutor.ImportedProcesses[0].Key); }
public void SaveDescriptor(WfClientProcessDescriptor clientProcessDesp) { OperationContext.Current.FillContextToOguServiceContext(); WfProcessDescriptor processDesp = null; WfClientProcessDescriptorConverter.Instance.ClientToServer(clientProcessDesp, ref processDesp); WfSaveTemplateExecutor executor = new WfSaveTemplateExecutor(processDesp); executor.Execute(); }