public WfApprovalMatrix ClientToServer(WfClientApprovalMatrix client, ref WfApprovalMatrix server) { client.NullCheck("client"); if (server == null) { server = new WfApprovalMatrix(); } server.ID = client.ID; foreach (WfClientRolePropertyDefinition cpd in client.PropertyDefinitions) { SOARolePropertyDefinition spd = null; WfClientRolePropertyDefinitionConverter.Instance.ClientToServer(cpd, ref spd); server.PropertyDefinitions.Add(spd); } foreach (WfClientRolePropertyRow cRow in client.Rows) { SOARolePropertyRow sRow = null; WfClientRolePropertyRowConverter.Instance.ClientToServer(cRow, server.PropertyDefinitions, ref sRow); server.Rows.Add(sRow); } return(server); }
public WfClientApprovalMatrix ServerToClient(WfApprovalMatrix server, ref WfClientApprovalMatrix client) { server.NullCheck("server"); if (client == null) { client = new WfClientApprovalMatrix(); } client.ID = server.ID; foreach (SOARolePropertyDefinition spd in server.PropertyDefinitions) { WfClientRolePropertyDefinition cpd = null; WfClientRolePropertyDefinitionConverter.Instance.ServerToClient(spd, ref cpd); client.PropertyDefinitions.Add(cpd); } foreach (SOARolePropertyRow sRow in server.Rows) { WfClientRolePropertyRow cRow = null; WfClientRolePropertyRowConverter.Instance.ServerToClient(sRow, client.PropertyDefinitions, ref cRow); client.Rows.Add(cRow); } return(client); }
public static void AreSame(this WfApprovalMatrix expected, WfApprovalMatrix actual) { AssertStringEqual(expected.ID, actual.ID); AreSame(expected.PropertyDefinitions, actual.PropertyDefinitions); AreSame(expected.Rows, actual.Rows); }
public void FilterAndMergeNotMatchedActivityMatrixAndApprovalMatrixTest() { SOARolePropertiesQueryParam queryParam = new SOARolePropertiesQueryParam(); queryParam.QueryName = "CostCenter"; queryParam.QueryValue = "1001"; WfActivityMatrixResourceDescriptor resource = ActivityMatrixHelper.PrepareActivityMatrixResourceDescriptor(); resource.Rows.ForEach(row => row.Values.FindByColumnName(SOARolePropertyDefinition.ActivityCodeColumn).Value = "NotMatched"); SOARolePropertyRowCollection activityRows = resource.Rows.Query(queryParam); int originalActivityCount = activityRows.Count; WfApprovalMatrix approvalMatrix = ApprovalMatrixHelper.PrepareApprovalMatrix(); SOARolePropertyRowCollection approvalRows = approvalMatrix.Rows.Query(queryParam); int originalApprovalCount = approvalMatrix.PropertyDefinitions.Count - 1; activityRows.MergeApprovalMatrix(resource.PropertyDefinitions, approvalRows, approvalMatrix.PropertyDefinitions); activityRows.AssertAndOutputMatrixOperators(); Assert.AreEqual(originalActivityCount + originalApprovalCount, activityRows.Count); }
public void ApprovalMatrixExistsTest() { WfApprovalMatrix matrix = ApprovalMatrixHelper.PrepareServerApprovalMatrix(); WfClientProcessDescriptorServiceProxy.Instance.ImportApprovalMatrix(matrix.ID, matrix.ToExcelStream()); Assert.IsTrue(WfClientProcessDescriptorServiceProxy.Instance.ApprovalMatrixExists(matrix.ID)); }
/// <summary> /// 准备一个一行的矩阵 /// </summary> /// <returns></returns> public static WfApprovalMatrix PrepareOneRowApprovalMatrixResourceDescriptor() { WfApprovalMatrix resource = new WfApprovalMatrix(); resource.PropertyDefinitions.CopyFrom(PreparePropertiesDefinition()); resource.Rows.Add(PrepareOneRow(resource.PropertyDefinitions)); return(resource); }
public void SimpleServerApprovalMatrixToClient() { WfApprovalMatrix server = ApprovalMatrixHelper.PrepareServerApprovalMatrix(); WfClientApprovalMatrix client = null; WfClientApprovalMatrixConverter.Instance.ServerToClient(server, ref client); client.AreSame(server); }
public void SimpleClientApprovalMatrixToServer() { WfClientApprovalMatrix client = ApprovalMatrixHelper.PrepareClientApprovalMatrix(); WfApprovalMatrix server = null; WfClientApprovalMatrixConverter.Instance.ClientToServer(client, ref server); client.AreSame(server); }
public void DeletelMatrixExistsTest() { InitPrincipal("Requestor"); WfApprovalMatrix matrix = ApprovalMatrixHelper.PrepareServerApprovalMatrix(); WfClientProcessDescriptorServiceProxy.Instance.ImportApprovalMatrix(matrix.ID, matrix.ToExcelStream()); WfClientProcessDescriptorServiceProxy.Instance.DeleteApprovalMatrix(matrix.ID); Assert.IsFalse(WfClientProcessDescriptorServiceProxy.Instance.ApprovalMatrixExists(matrix.ID)); }
public static WfActivityMatrixResourceDescriptor PrepareEmptyActivityMatrixResourceDescriptorWithExternal() { WfActivityMatrixResourceDescriptor resource = PrepareActivityMatrixResourceDescriptor(); WfApprovalMatrix externalMatrix = ApprovalMatrixHelper.PrepareApprovalMatrix(); WfApprovalMatrixAdapter.Instance.Update(externalMatrix); resource.ExternalMatrixID = externalMatrix.ID; return(resource); }
public static WfApprovalMatrix PrepareApprovalMatrix() { WfApprovalMatrix matrix = new WfApprovalMatrix() { ID = UuidHelper.NewUuidString() }; matrix.PropertyDefinitions.CopyFrom(PreparePropertiesDefinition()); matrix.Rows.CopyFrom(PrepareRows(matrix.PropertyDefinitions)); return(matrix); }
public void MergeMatchedOneActivityMatrixAndApprovalMatrixTest() { WfActivityMatrixResourceDescriptor resource = ActivityMatrixHelper.PrepareOneRowActivityMatrixResourceDescriptor(); WfApprovalMatrix approvalMatrix = ApprovalMatrixHelper.PrepareOneRowApprovalMatrixResourceDescriptor(); resource.MergeApprovalMatrix(approvalMatrix); Assert.AreEqual(approvalMatrix.PropertyDefinitions.Count - 1, resource.Rows.Count); resource.AssertAndOutputMatrixOperators(); }
/// <summary> /// 创建一个与活动矩阵不匹配列的审批矩阵 /// </summary> /// <returns></returns> public static WfApprovalMatrix PrepareExtrApprovalMatrix() { WfApprovalMatrix matrix = new WfApprovalMatrix() { ID = UuidHelper.NewUuidString() }; matrix.PropertyDefinitions.Add(new SOARolePropertyDefinition() { Name = "CostCenter", SortOrder = 0 }); matrix.PropertyDefinitions.Add(new SOARolePropertyDefinition() { Name = "ExtraApprover", SortOrder = 1 }); SOARolePropertyDefinitionCollection pds = matrix.PropertyDefinitions; SOARolePropertyRow row1 = new SOARolePropertyRow() { RowNumber = 1, OperatorType = SOARoleOperatorType.User, Operator = string.Empty }; row1.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1001" }); row1.Values.Add(new SOARolePropertyValue(pds["ExtraApprover"]) { Value = "wangli5" }); matrix.Rows.Add(row1); SOARolePropertyRow row2 = new SOARolePropertyRow() { RowNumber = 2, OperatorType = SOARoleOperatorType.User, Operator = string.Empty }; row2.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1001" }); row2.Values.Add(new SOARolePropertyValue(pds["ExtraApprover"]) { Value = "InvalidUser" }); matrix.Rows.Add(row2); return(matrix); }
public void UpdateApprovalMatrixTest() { WfApprovalMatrix matrix = ApprovalMatrixHelper.PrepareApprovalMatrix(); Assert.AreEqual(WfMatrixType.ApprovalMatrix, matrix.PropertyDefinitions.MatrixType); WfApprovalMatrixAdapter.Instance.Update(matrix); WfApprovalMatrix loaded = WfApprovalMatrixAdapter.Instance.LoadByID(matrix.ID); Assert.AreEqual(matrix.PropertyDefinitions.Count, loaded.PropertyDefinitions.Count); Assert.AreEqual(matrix.Rows.Count, loaded.Rows.Count); }
public void MergeMatchedActivityMatrixAndApprovalMatrixTest() { WfActivityMatrixResourceDescriptor resource = ActivityMatrixHelper.PrepareActivityMatrixResourceDescriptor(); int originalCount = resource.Rows.Count; WfApprovalMatrix approvalMatrix = ApprovalMatrixHelper.PrepareApprovalMatrix(); resource.MergeApprovalMatrix(approvalMatrix); Assert.AreEqual(originalCount, resource.Rows.Count); resource.AssertAndOutputMatrixOperators(); }
public void ApprovalMatrixToExcelTest() { WfApprovalMatrix matrix = ApprovalMatrixHelper.PrepareApprovalMatrix(); WorkBook workBook = matrix.ToWorkBook(); workBook.Save("ApprovalMatrixToExcelTest.xlsx"); WfApprovalMatrix deserialized = workBook.ToApprovalMatrix(); deserialized.ID = matrix.ID; Assert.AreEqual(matrix.PropertyDefinitions.Count, deserialized.PropertyDefinitions.Count); Assert.AreEqual(matrix.Rows.Count, deserialized.Rows.Count); }
public void MergeNotMatchedOneActivityMatrixAndApprovalMatrixTest() { WfActivityMatrixResourceDescriptor resource = ActivityMatrixHelper.PrepareOneRowActivityMatrixResourceDescriptor(); int originalCount = resource.Rows.Count; resource.Rows[0].Values.FindByColumnName(SOARolePropertyDefinition.ActivityCodeColumn).Value = "NotMatched"; WfApprovalMatrix approvalMatrix = ApprovalMatrixHelper.PrepareOneRowApprovalMatrixResourceDescriptor(); resource.MergeApprovalMatrix(approvalMatrix); Assert.AreEqual(approvalMatrix.PropertyDefinitions.Count, resource.Rows.Count); resource.AssertAndOutputMatrixOperators(); }
public void ImportApprovalMatrixTest() { InitPrincipal("Requestor"); WfApprovalMatrix matrix = ApprovalMatrixHelper.PrepareServerApprovalMatrix(); WfClientProcessDescriptorServiceProxy.Instance.ImportApprovalMatrix(matrix.ID, matrix.ToExcelStream()); Stream stream = WfClientProcessDescriptorServiceProxy.Instance.ExportApprovalMatrix(matrix.ID); WorkBook workBook = WorkBook.Load(stream); WfApprovalMatrix deserialized = workBook.ToApprovalMatrix(); deserialized.ID = matrix.ID; matrix.AreSame(deserialized); }
public void FilterAndMergeEmptyActivityMatrixAndApprovalMatrixTest() { WfActivityMatrixResourceDescriptor resource = new WfActivityMatrixResourceDescriptor(); SOARolePropertiesQueryParam queryParam = new SOARolePropertiesQueryParam(); queryParam.QueryName = "CostCenter"; queryParam.QueryValue = "1001"; WfApprovalMatrix approvalMatrix = ApprovalMatrixHelper.PrepareApprovalMatrix(); SOARolePropertyRowCollection approvalRows = approvalMatrix.Rows.Query(queryParam); resource.Rows.MergeApprovalMatrix(resource.PropertyDefinitions, approvalRows, approvalMatrix.PropertyDefinitions); //输出的只有RowNumber。因为活动矩阵没有列 resource.Rows.AssertAndOutputMatrixOperators(); Assert.AreEqual(3, resource.Rows.Count); }
public void ApprovalMatrixQueryParamMismatchProcessTest() { WfApprovalMatrix approvalMatrix = ApprovalMatrixHelper.PrepareApprovalMatrix(); WfApprovalMatrixAdapter.Instance.Update(approvalMatrix); IWfProcessDescriptor processDesp = ProcessHelper.GetDynamicProcessDesp(approvalMatrix.ID); IWfProcess process = ProcessHelper.StartupProcess(processDesp, new Dictionary <string, object>() { { "PayMethod", "1" }, { "Age", 30 } }); SOARoleContext context = SOARoleContext.CreateContext(approvalMatrix.PropertyDefinitions, process); context.QueryParams.Output(); Assert.AreEqual(1, context.QueryParams.Count); Assert.IsNull(context.QueryParams[0].QueryValue); }
public void MergeMatchedActivityMatrixAndApprovalMatrixProcessTest() { WfApprovalMatrix approvalMatrix = ApprovalMatrixHelper.PrepareApprovalMatrix(); WfApprovalMatrixAdapter.Instance.Update(approvalMatrix); IWfProcessDescriptor processDesp = ProcessHelper.GetDynamicProcessDesp(approvalMatrix.ID); IWfProcess process = ProcessHelper.StartupProcess(processDesp, new Dictionary <string, object>() { { "CostCenter", "1001" }, { "PayMethod", "1" }, { "Age", 30 } }); Console.WriteLine(process.Activities.Count); WfOutputHelper.OutputMainStream(process); WfOutputHelper.OutputEveryActivities(process); Assert.AreEqual(6, process.Activities.Count); }
public void MergeNotMatchedActivityMatrixAndApprovalMatrixProcessTest() { WfApprovalMatrix approvalMatrix = ApprovalMatrixHelper.PrepareApprovalMatrix(); WfApprovalMatrixAdapter.Instance.Update(approvalMatrix); WfActivityMatrixResourceDescriptor resource = ActivityMatrixHelper.PrepareActivityMatrixResourceDescriptor(); resource.Rows.ForEach(row => row.Values.FindByColumnName(SOARolePropertyDefinition.ActivityCodeColumn).Value = "NotMatched"); IWfProcessDescriptor processDesp = ProcessHelper.GetDynamicProcessDesp(resource, approvalMatrix.ID); IWfProcess process = ProcessHelper.StartupProcess(processDesp, new Dictionary <string, object>() { { "CostCenter", "1001" }, { "PayMethod", "1" }, { "Age", 30 } }); Console.WriteLine(process.Activities.Count); WfOutputHelper.OutputMainStream(process); WfOutputHelper.OutputEveryActivities(process); process.Activities.ForEach(act => { if (act.Descriptor.ActivityType == WfActivityType.NormalActivity) { if (act.Descriptor.Properties.GetValue("IsDynamic", false) == false) { Console.WriteLine(act.Descriptor.Name); Assert.IsTrue(act.Descriptor.Name.IndexOf("审批") >= 0); } } }); Assert.AreEqual(8, process.Activities.Count); }
public void MergeActivityMatrixWithDynamicActivityAndApprovalMatrixTest() { WfActivityMatrixResourceDescriptor resource = ActivityMatrixHelper.PrepareDynamicActivityMatrixResourceDescriptor(); WfApprovalMatrix approvalMatrix = ApprovalMatrixHelper.PrepareApprovalMatrix(); WfApprovalMatrixAdapter.Instance.Update(approvalMatrix); IWfProcessDescriptor processDesp = ProcessHelper.GetDynamicProcessDesp(resource, approvalMatrix.ID); IWfProcess process = ProcessHelper.StartupProcess(processDesp, new Dictionary <string, object>() { { "CostCenter", "1001" }, { "PayMethod", "1" }, { "Age", 30 }, { "ReportLine", new IUser[] { OguObjectSettings.GetConfig().Objects["approver1"].User, OguObjectSettings.GetConfig().Objects["cfo"].User } } }); Console.WriteLine(process.Activities.Count); WfOutputHelper.OutputMainStream(process); WfOutputHelper.OutputEveryActivities(process); }
public void FilterAndMergeMatchedActiveMatrixWithRoleAndApprovalMatrixTest() { SOARolePropertiesQueryParam queryParam = new SOARolePropertiesQueryParam(); queryParam.QueryName = "CostCenter"; queryParam.QueryValue = "1002"; WfActivityMatrixResourceDescriptor resource = ActivityMatrixHelper.PrepareActivityMatrixResourceDescriptor(); SOARolePropertyRowCollection activityRows = resource.Rows.Query(queryParam); int originalCount = activityRows.Count; WfApprovalMatrix approvalMatrix = ApprovalMatrixHelper.PrepareApprovalMatrix(); SOARolePropertyRowCollection approvalRows = approvalMatrix.Rows.Query(queryParam); activityRows.MergeApprovalMatrix(resource.PropertyDefinitions, approvalRows, approvalMatrix.PropertyDefinitions); activityRows.AssertAndOutputMatrixOperators(); Assert.AreEqual(3, activityRows.Count); }
public Stream ExportApprovalMatrix(string matrixID) { WfApprovalMatrix matrix = WfApprovalMatrixAdapter.Instance.LoadByID(matrixID); return(matrix.ToExcelStream()); }