public void WfDynamicProcessToExcelTest() { string processKey = "c8d2a844-0003-bb51-4ab0-1563a40d2b58"; WfCreateClientDynamicProcessParams processParams = ProcessDescriptorHelper.CreateClientDynamicProcessParams(); processParams.Key = processKey; WfClientDynamicProcessBuilder builder = new WfClientDynamicProcessBuilder(processParams); WfClientProcessDescriptor client = builder.Build(processParams.Key, processParams.Name); WfClientServiceBrokerContext.Current.Context[Consts.TenantCode] = "Test1";// GetCurrentTenantCode(); WfClientProcessDescriptorServiceProxy.Instance.SaveDescriptor(client); System.Data.DataTable processTable = null; System.Data.DataTable matrixTable = null; using (Stream stream = WfClientProcessDescriptorServiceProxy.Instance.WfDynamicProcessToExcel(processKey)) { processTable = DocumentHelper.GetRangeValuesAsTable(stream, "Process", "A3"); matrixTable = DocumentHelper.GetRangeValuesAsTable(stream, "Matrix", "A3"); } Assert.IsTrue(processTable.Rows.Count > 0); Assert.IsTrue(matrixTable.Rows.Count == 2); Assert.IsTrue(matrixTable.Rows[0]["CostCenter"].ToString() == "1001"); Assert.IsTrue(matrixTable.Rows[1]["Age"].ToString() == "40"); }
public void ExcelKeyChangeSaveDescriptorTest() { const string processKey = "c8d2a844-0002-bb51-4ab0-1563a40d2b587"; WfCreateClientDynamicProcessParams processParams = ProcessDescriptorHelper.CreateClientDynamicProcessParams(); processParams.Key = processKey; WfClientDynamicProcessBuilder builder = new WfClientDynamicProcessBuilder(processParams); WfClientProcessDescriptor client = builder.Build(processParams.Key, processParams.Name); WfClientServiceBrokerContext.Current.Context[Consts.TenantCode] = "Test1"; // GetCurrentTenantCode(); WfClientProcessDescriptorServiceProxy.Instance.SaveDescriptor(client); //数据准备 #region 保存EXCEL后,修改EXCEL数据后再校验 //using (FileStream fs = File.OpenWrite(string.Format("E:\\work\\TMP\\{0}.xlsx", processKey))) //{ // WfClientProcessDescriptorServiceProxy.Instance.WfDynamicProcessToExcel(processKey).CopyTo(fs); //} //using (FileStream fs = File.OpenRead(string.Format("E:\\work\\TMP\\{0}.xlsx", processKey))) //{ // WfClientProcessDescriptorServiceProxy.Instance.ExcelToSaveDescriptor(processKey, fs); //} #endregion client = WfClientProcessDescriptorServiceProxy.Instance.GetDescriptor(processKey); Assert.AreEqual(client.Properties.GetValue("Key", string.Empty), processKey); Assert.AreEqual(client.Key, processKey); }
public void ExcelToSaveDescriptorTest() { const string processKey = "c8d2a844-3a3a-bb51-4ab0-1563a40d2b58"; WfCreateClientDynamicProcessParams processParams = ProcessDescriptorHelper.CreateClientDynamicProcessParams(); processParams.Key = processKey; WfClientDynamicProcessBuilder builder = new WfClientDynamicProcessBuilder(processParams); WfClientProcessDescriptor client = builder.Build(processParams.Key, processParams.Name); WfClientProcessDescriptorServiceProxy.Instance.SaveDescriptor(client);//数据准备 WfClientProcessDescriptor server = null; using (Stream stream = WfClientProcessDescriptorServiceProxy.Instance.WfDynamicProcessToExcel(processKey)) //EXCEL文件流 { WfClientProcessDescriptorServiceProxy.Instance.DeleteDescriptor(processKey); //清理 //校验清理结果 try { server = WfClientProcessDescriptorServiceProxy.Instance.GetDescriptor(processKey); } catch (MCS.Library.WcfExtensions.WfClientChannelException ex) { Assert.IsTrue(true, ex.Message); } WfClientServiceBrokerContext.Current.Context[Consts.TenantCode] = "Test1";// GetCurrentTenantCode(); WfClientProcessDescriptorServiceProxy.Instance.ExcelToSaveDescriptor(processKey, stream); server = WfClientProcessDescriptorServiceProxy.Instance.GetDescriptor(processKey); Assert.AreEqual(processParams.ProgramName, server.ProgramName); // Assert.AreEqual("Test1", server.Properties)); } }
public void ExcelToWfCreateClientDynamicProcessParamsTest() { const string processKey = "c8d2a844-0000-bb51-4ab0-1563a40d2b58"; WfCreateClientDynamicProcessParams processParams = ProcessDescriptorHelper.CreateClientDynamicProcessParams(); processParams.Key = processKey; WfCreateClientDynamicProcessParams result = null; WfClientDynamicProcessBuilder builder = new WfClientDynamicProcessBuilder(processParams); WfClientProcessDescriptor client = builder.Build(processParams.Key, processParams.Name); WfClientServiceBrokerContext.Current.Context[Consts.TenantCode] = "Test1"; // GetCurrentTenantCode(); WfClientProcessDescriptorServiceProxy.Instance.SaveDescriptor(client); //数据准备 using (Stream stream = WfClientProcessDescriptorServiceProxy.Instance.WfDynamicProcessToExcel(processKey)) //EXCEL文件流 { result = WfClientProcessDescriptorServiceProxy.Instance.ExcelToWfCreateClientDynamicProcessParams(processKey, stream); } processParams.ActivityMatrix.PropertyDefinitions.ForEach(action => { action.DataType = ColumnDataType.String; }); //EXCEL 无法存储类型信息,所有默认都为string类型 processParams.AreSame(result); }
public void WfClientDynamicProcessBuilderInstanceTest() { WfCreateClientDynamicProcessParams createParams = ProcessDescriptorHelper.CreateClientDynamicProcessParams(); WfClientDynamicProcessBuilder builder = new WfClientDynamicProcessBuilder(createParams); WfClientProcessDescriptor client = builder.Build(createParams.Key, createParams.Name); IWfProcess process = ProcessHelper.CreateProcessInstance(client); Assert.IsTrue(process.Activities.Count > client.Activities.Count); }
public void ExcelToSaveDescriptor(string processKey, Stream stream) { OperationContext.Current.FillContextToOguServiceContext(); WfCreateClientDynamicProcessParams processParams = ExcelToWfCreateClientDynamicProcessParams(processKey, stream); WfClientDynamicProcessBuilder builder = new WfClientDynamicProcessBuilder(processParams); WfClientProcessDescriptor client = builder.Build(processParams.Key, processParams.Name); WfProcessDescriptor processDesp = null; WfClientProcessDescriptorConverter.Instance.ClientToServer(client, ref processDesp); WfProcessDescriptorManager.SaveDescriptor(processDesp); }
public void WfClientDynamicProcessBuilderTest() { WfCreateClientDynamicProcessParams createParams = ProcessDescriptorHelper.CreateClientDynamicProcessParams(); WfClientDynamicProcessBuilder builder = new WfClientDynamicProcessBuilder(createParams); WfClientProcessDescriptor client = builder.Build(createParams.Key, createParams.Name); WfProcessDescriptor server = null; WfClientProcessDescriptorConverter.Instance.ClientToServer(client, ref server); Assert.IsTrue(server.Variables.GetValue("ClientDynamicProcess", false)); Assert.IsNotNull(server.Activities["N1"]); Assert.IsTrue(server.Activities["N1"].Resources.Count > 0); Assert.IsTrue(server.Activities["N1"].Resources[0] is WfActivityMatrixResourceDescriptor); }
public void ExcelStreamToClientTest() { WfCreateClientDynamicProcessParams createParams = ProcessDescriptorHelper.CreateClientDynamicProcessParams(); WfCreateClientDynamicProcessParams outProcessParams = null; WfClientDynamicProcessBuilder builder = new WfClientDynamicProcessBuilder(createParams); WfClientProcessDescriptor client = builder.Build(createParams.Key, createParams.Name); string processKey = createParams.Key; using (Stream stream = WfClientProcessDescriptorConverter.Instance.ClientDynamicProcessToExcelStream(client)) { WfCreateClientDynamicProcessParamsConverter.Instance.ExcelStreamToClient(processKey, stream, ref outProcessParams); } createParams.ActivityMatrix.PropertyDefinitions.ForEach(action => { action.DataType = ColumnDataType.String; }); //EXCEL 无法存储类型信息,所有默认都为string类型 createParams.AreSame(outProcessParams); }
public void ClientDynamicProcessToExcelStreamTest() { WfCreateClientDynamicProcessParams createParams = ProcessDescriptorHelper.CreateClientDynamicProcessParams(); WfClientDynamicProcessBuilder builder = new WfClientDynamicProcessBuilder(createParams); WfClientProcessDescriptor client = builder.Build(createParams.Key, createParams.Name); string processKey = createParams.Key; System.Data.DataTable processTable = new System.Data.DataTable(); System.Data.DataTable matrixTable = new System.Data.DataTable(); using (Stream stream = WfClientProcessDescriptorConverter.Instance.ClientDynamicProcessToExcelStream(client)) { processTable = DocumentHelper.GetRangeValuesAsTable(stream, "Process", "A3"); matrixTable = DocumentHelper.GetRangeValuesAsTable(stream, "Matrix", "A3"); } Assert.IsTrue(processTable.Rows.Count > 0); Assert.IsTrue(matrixTable.Rows.Count == 2); Assert.IsTrue(matrixTable.Rows[0]["CostCenter"].ToString() == "1001"); Assert.IsTrue(matrixTable.Rows[1]["Age"].ToString() == "40"); }