private static SOARolePropertyDefinitionCollection PreparePropertiesDefinition(IRole role) { SOARolePropertyDefinitionCollection propertiesDefinition = new SOARolePropertyDefinitionCollection(); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = "CostCenter", SortOrder = 0 }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = "Condition", SortOrder = 3 }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = "ActivitySN", SortOrder = 4 }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = "ActivityProperties", SortOrder = 5 }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = "IsMergeable", SortOrder = 6, DataType = ColumnDataType.Boolean }); return(propertiesDefinition); }
private static SOARolePropertyRow AddSOARoleRow(SOARole role, SOARoleOperatorType operatorType, string opUser, string constCenter, string activitySN, Action <SOARolePropertyRow, SOARolePropertyDefinitionCollection> action = null) { SOARolePropertyRow row = new SOARolePropertyRow(role) { RowNumber = role.Rows.Count + 1, OperatorType = operatorType, Operator = opUser }; SOARolePropertyDefinitionCollection pds = role.PropertyDefinitions; row.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = constCenter }); row.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.ActivitySNColumn]) { Value = activitySN }); row.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.OperatorTypeColumn]) { Value = operatorType.ToString() }); row.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.OperatorColumn]) { Value = opUser }); if (action != null) { action(row, pds); } role.Rows.Add(row); return(row); }
/// <summary> /// 将活动矩阵与审批矩阵进行合并,以第一个矩阵的列定义为准 /// </summary> /// <param name="amRows"></param> /// <param name="amDefinitions"></param> /// <param name="apRows"></param> /// <param name="apDefinitions"></param> public static void MergeActivityMatrix(this SOARolePropertyRowCollection amRows, SOARolePropertyDefinitionCollection amDefinitions, IEnumerable<SOARolePropertyRow> apRows, SOARolePropertyDefinitionCollection apDefinitions) { amDefinitions.NullCheck("amDefinitions"); amRows.NullCheck("amRows"); apDefinitions.NullCheck("apDefinitions"); apRows.NullCheck("apRows"); int maxRowNumber = GetMaxRowNumber(amRows); foreach (SOARolePropertyRow apRow in apRows) { SOARolePropertyRow newRow = new SOARolePropertyRow(amRows.Role); newRow.RowNumber = ++maxRowNumber; newRow.OperatorType = apRow.OperatorType; newRow.Operator = apRow.Operator; foreach (SOARolePropertyValue srv in apRow.Values) { if (amDefinitions.ContainsKey(srv.Column.Name)) { SOARolePropertyValue newValue = new SOARolePropertyValue(amDefinitions[srv.Column.Name]); newValue.Value = srv.Value; newRow.Values.Add(newValue); } } } }
private static SOARolePropertyDefinitionCollection PrepareActivityMatrixPropertiesDefinition(string definitionID) { SOARole role = new SOARole(); role.ID = definitionID; SOARolePropertyDefinitionCollection propertiesDefinition = new SOARolePropertyDefinitionCollection(); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = "AdministrativeUnit", SortOrder = 0 }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = "ActivitySN", SortOrder = 0, DataType = ColumnDataType.Integer }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = "OperatorType", SortOrder = 1, DataType = ColumnDataType.String }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = "Operator", SortOrder = 2, DataType = ColumnDataType.String }); return(propertiesDefinition); }
/// <summary> /// 根据管理单元的ID得到SOARole。 /// </summary> /// <param name="auCodeName"></param> /// <returns></returns> public SOARole GetSOARole(string auCodeName) { SOARole role = null; if (this.ClientSchemaRoleObject != null) { string definitionID = this.ClientSchemaRoleObject.ID; string roleID = definitionID; ClientAURole auRole = GetAURoleObject(auCodeName); if (auRole != null) { roleID = auRole.ID; } SOARolePropertyDefinitionCollection definition = SOARolePropertyDefinitionAdapter.Instance.GetByRoleID(definitionID); role = new SOARole(definition); role.ID = roleID; //如果矩阵的行数为零 if (role.Rows.Count == 0) { role = new SOARole(definition); role.ID = definitionID; } } return(role); }
private static SOARolePropertyDefinitionCollection PrepareSamplePropertiesDefinition() { SOARolePropertyDefinitionCollection propertiesDefinition = new SOARolePropertyDefinitionCollection(); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "CostCenter", SortOrder = 0, Description = "成本中心" }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "ActivitySN", SortOrder = 1, Description = "活动序号" }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "ActivityProperties", SortOrder = 2, Description = "活动属性" }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "OperatorType", SortOrder = 3, DataType = ColumnDataType.String, Description = "操作人类型" }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "Operator", SortOrder = 4, DataType = ColumnDataType.String, Description = "操作人" }); return(propertiesDefinition); }
public static void ExportToExcelXml(WorkbookNode workbook, SOARolePropertyDefinitionCollection definition, string propertySheetName) { workbook.NullCheck("workbook"); propertySheetName.NullCheck("propertySheetName"); FillWorkSheetTitle(workbook, definition, propertySheetName); }
private static SOARolePropertyRowCollection PrepareSampleRows(SOARolePropertyDefinitionCollection pds) { SOARolePropertyRowCollection rows = new SOARolePropertyRowCollection(); SOARolePropertyRow row1 = new SOARolePropertyRow() { RowNumber = 1, OperatorType = SOARoleOperatorType.User, Operator = "fanhy" }; row1.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1001" }); row1.Values.Add(new SOARolePropertyValue(pds["ActivitySN"]) { Value = "10" }); row1.Values.Add(new SOARolePropertyValue(pds["ActivityProperties"]) { Value = "{Name:\"部门领导\"}" }); SOARolePropertyRow row2 = new SOARolePropertyRow() { RowNumber = 2, OperatorType = SOARoleOperatorType.User, Operator = "liming" }; row2.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1001" }); row2.Values.Add(new SOARolePropertyValue(pds["ActivitySN"]) { Value = "20" }); row2.Values.Add(new SOARolePropertyValue(pds["ActivityProperties"]) { Value = "{Name:\"公司领导\"}" }); SOARolePropertyRow row3 = new SOARolePropertyRow() { RowNumber = 3, OperatorType = SOARoleOperatorType.User, Operator = "quym" }; row3.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1002" }); row3.Values.Add(new SOARolePropertyValue(pds["ActivitySN"]) { Value = "10" }); row3.Values.Add(new SOARolePropertyValue(pds["ActivityProperties"]) { Value = "{Name:\"部门领导\"}" }); SOARolePropertyRow row4 = new SOARolePropertyRow() { RowNumber = 4, OperatorType = SOARoleOperatorType.User, Operator = "liming" }; row4.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1002" }); row4.Values.Add(new SOARolePropertyValue(pds["ActivitySN"]) { Value = "20" }); row4.Values.Add(new SOARolePropertyValue(pds["ActivityProperties"]) { Value = "{Name:\"公司领导\"}" }); rows.Add(row1); rows.Add(row2); rows.Add(row3); rows.Add(row4); return rows; }
private static SOARolePropertyDefinitionCollection PrepareServerPropertiesDefinition() { SOARolePropertyDefinitionCollection propertiesDefinition = new SOARolePropertyDefinitionCollection(); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "CostCenter", SortOrder = 0 }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "PayMethod", SortOrder = 1 }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "Age", SortOrder = 2, DataType = ColumnDataType.Integer }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "OperatorType", SortOrder = 3, DataType = ColumnDataType.String }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "Operator", SortOrder = 4, DataType = ColumnDataType.String }); return(propertiesDefinition); }
private static SOARolePropertyRow PrepareOneRow(SOARolePropertyDefinitionCollection pds) { SOARolePropertyRow row = new SOARolePropertyRow() { RowNumber = 1, OperatorType = SOARoleOperatorType.User, Operator = string.Empty }; row.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1001" }); row.Values.Add(new SOARolePropertyValue(pds["Approver1"]) { Value = "yangrui1" }); row.Values.Add(new SOARolePropertyValue(pds["Approver2"]) { Value = "quym" }); row.Values.Add(new SOARolePropertyValue(pds["Approver3"]) { Value = "liming" }); return(row); }
private static void AppendOperator(SOARolePropertyRow row, SOARolePropertyDefinitionCollection columns, string apUser) { string columnName = SOARolePropertyDefinition.OperatorColumn; if (columns.ContainsKey(columnName)) { SOARolePropertyValue pValue = row.Values.FindByColumnName(columnName); if (pValue == null) { pValue = new SOARolePropertyValue(columns[columnName]); row.Values.Add(pValue); } if (apUser.IsNotEmpty()) { pValue.Value = pValue.Value.NullOrEmptyIs(row.Operator); if (pValue.Value.IsNotEmpty()) { pValue.Value += ","; } else { pValue.Value = string.Empty; } pValue.Value += apUser; row.Operator = pValue.Value; } } }
/// <summary> /// 创建一个都是预定义列的属性集合 /// </summary> /// <returns></returns> public static SOARolePropertyDefinitionCollection PrepareReservedPropertiesDefinition() { SOARolePropertyDefinitionCollection propertiesDefinition = new SOARolePropertyDefinitionCollection(); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = SOARolePropertyDefinition.ActivitySNColumn, SortOrder = 1 }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = SOARolePropertyDefinition.ConditionColumn, SortOrder = 3, DefaultValue = "RowOperators.Count > 0" }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = SOARolePropertyDefinition.ActivityCodeColumn, SortOrder = 4 }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = SOARolePropertyDefinition.ActivityNameColumn, SortOrder = 6, DefaultValue = "审批" }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = SOARolePropertyDefinition.AutoExtractColumn, SortOrder = 6, DataType = ColumnDataType.Boolean, DefaultValue = "False" }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = SOARolePropertyDefinition.OperatorTypeColumn, SortOrder = 8, DataType = ColumnDataType.String }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = SOARolePropertyDefinition.OperatorColumn, SortOrder = 9, DataType = ColumnDataType.String }); return(propertiesDefinition); }
public SOARolePropertyDefinitionCollection LoadByRoleID(string roleID) { roleID.CheckStringIsNullOrEmpty("roleID"); string sql = string.Format("SELECT * FROM WF.ROLE_PROPERTIES_DEFINITIONS WHERE {0} ORDER BY SORT_ORDER", roleID.ToRoleIDCriteria()); using (TransactionScope scope = TransactionScopeFactory.Create(TransactionScopeOption.Suppress)) { DataTable table = DbHelper.RunSqlReturnDS(sql, GetConnectionName()).Tables[0]; SOARolePropertyDefinitionCollection result = new SOARolePropertyDefinitionCollection(); foreach (DataRow row in table.Rows) { SOARolePropertyDefinition property = new SOARolePropertyDefinition(); ORMapping.DataRowToObject(row, property); result.Add(property); } return result; } }
private static SOARolePropertyDefinitionCollection UpdateRolePropertiesDefinition(IRole role) { SOARolePropertyDefinitionCollection propertiesDefinition = PreparePropertiesDefinition(role); SOARolePropertyDefinitionAdapter.Instance.Update(role, propertiesDefinition); return(propertiesDefinition); }
private static SOARole PrepareRole(string roleID, string definitionID) { SOARolePropertyDefinitionCollection definition = SOARolePropertyDefinitionAdapter.Instance.LoadByRoleID(definitionID); return(new SOARole(definition) { ID = roleID }); }
public static void AreSame(this SOARolePropertyDefinitionCollection expected, SOARolePropertyDefinitionCollection actual) { Assert.AreEqual(expected.Count, actual.Count); for (int i = 0; i < expected.Count; i++) { AreSame(expected[i], actual[i]); } }
private static void MergeToActivityMatrixRow( SOARolePropertyRow amRow, SOARolePropertyDefinitionCollection amDefinitions, string apUser) { SetCellValue(amRow, amDefinitions, SOARolePropertyDefinition.OperatorTypeColumn, SOARoleOperatorType.User.ToString()); AppendOperator(amRow, amDefinitions, apUser); }
public void UpdateRolePropertyDefinitionTest() { IRole role = GetTestRole(); SOARolePropertyDefinitionCollection propertiesDefinition = UpdateRolePropertiesDefinition(role); SOARolePropertyDefinitionCollection loadedPropertiesDefinition = SOARolePropertyDefinitionAdapter.Instance.LoadByRole(role); Assert.AreEqual(propertiesDefinition.Count, loadedPropertiesDefinition.Count); }
private static SOARolePropertyRow PrepareOneRow(SOARolePropertyDefinitionCollection pds) { SOARolePropertyRow row = new SOARolePropertyRow() { RowNumber = 1, OperatorType = SOARoleOperatorType.User, Operator = string.Empty }; row.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1001" }); row.Values.Add(new SOARolePropertyValue(pds["Approver1"]) { Value = "yangrui1" }); row.Values.Add(new SOARolePropertyValue(pds["Approver2"]) { Value = "quym" }); row.Values.Add(new SOARolePropertyValue(pds["Approver3"]) { Value = "liming" }); return row; }
/// <summary> /// 导出到Excel Xml中,非OpenXml /// </summary> /// <param name="coll"></param> /// <param name="propertySheetName"></param> /// <returns></returns> public static WorkbookNode ExportToExcelXml(SOARolePropertyDefinitionCollection definition, string propertySheetName) { WorkbookNode workbook = new WorkbookNode(); string filePath = HttpContext.Current.Server.MapPath("RolePropertyTemplate.xml"); workbook.Load(filePath); ExportToExcelXml(workbook, definition, propertySheetName); return(workbook); }
private static SOARolePropertyDefinitionCollection PreparePropertiesDefinition() { SOARolePropertyDefinitionCollection propertiesDefinition = new SOARolePropertyDefinitionCollection(); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "CostCenter", SortOrder = 0 }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "Approver1", SortOrder = 1 }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "Approver2", SortOrder = 2 }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "Approver3", SortOrder = 3 }); return propertiesDefinition; }
private static void FillColumnInfoToRowValues(SOARolePropertyDefinitionCollection columns, SOARolePropertyRowCollection rows) { foreach (SOARolePropertyRow row in rows) { foreach (SOARolePropertyValue pv in row.Values) { SOARolePropertyDefinition column = columns[pv.Column.Name]; pv.SetColumnInfo(column); } } }
private static SOARolePropertyDefinitionCollection PrepareSamplePropertiesDefinition() { SOARolePropertyDefinitionCollection propertiesDefinition = new SOARolePropertyDefinitionCollection(); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "CostCenter", SortOrder = 0, Description = "成本中心" }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "ActivitySN", SortOrder = 1, Description = "活动序号" }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "ActivityProperties", SortOrder = 2, Description = "活动属性" }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "OperatorType", SortOrder = 3, DataType = ColumnDataType.String, Description = "操作人类型" }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "Operator", SortOrder = 4, DataType = ColumnDataType.String, Description = "操作人" }); return propertiesDefinition; }
public static SOARoleContext CreateContext(SOARolePropertyDefinitionCollection propertyDefines, IWfProcess process) { propertyDefines.NullCheck("propertyDefines"); SOARolePropertiesQueryParamCollection queryParams = CreateQueryParams(propertyDefines, process); SOARoleContext context = SOARoleContext.CreateContext(queryParams, process); context.PropertyDefinitions = propertyDefines; return context; }
/// <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 ProcessRequest(HttpContext context) { string roleID = context.Request["roleID"]; if (string.IsNullOrEmpty(context.Request["roleID"]) == false) { SOARole role = new SOARole() { ID = roleID }; SOARolePropertyDefinitionCollection rowsColl = SOARolePropertyDefinitionAdapter.Instance.LoadByRole(role); XDocument rolePropertiesDoc = new XDocument(new XDeclaration("1.0", "utf-8", "true"), new XElement("SOARoleProperties")); XElementFormatter formatter = new XElementFormatter(); formatter.OutputShortType = false; XElement xeRoleProperties = formatter.Serialize(rowsColl); rolePropertiesDoc.Element("SOARoleProperties").Add(xeRoleProperties); context.Response.Clear(); context.Response.ContentType = "text/xml"; context.Response.ContentEncoding = Encoding.UTF8; string fileName = string.Empty; if (context.Request["roleName"].IsNotEmpty()) { fileName = string.Format("{0}", context.Request["roleName"]); } if (fileName.IsNullOrEmpty() && context.Request["roleCode"].IsNotEmpty()) { fileName = string.Format("{0}", context.Request["roleCode"]); } if (fileName.IsNullOrEmpty()) { fileName = roleID; } fileName += "_Properties"; context.Response.AppendHeader("content-disposition", string.Format("attachment;fileName={0}.xml", context.Response.EncodeFileNameInContentDisposition(fileName))); rolePropertiesDoc.Save(context.Response.OutputStream); context.Response.End(); } }
private static SOARolePropertyRow PrepareTwoUsersDynamicRow(SOARolePropertyDefinitionCollection pds) { SOARolePropertyRow row1 = new SOARolePropertyRow() { RowNumber = 1, OperatorType = SOARoleOperatorType.User, Operator = "liming,liming,yangrui1" }; row1.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1001" }); row1.Values.Add(new SOARolePropertyValue(pds["PayMethod"]) { Value = "1" }); row1.Values.Add(new SOARolePropertyValue(pds["Age"]) { Value = "30" }); row1.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.ActivitySNColumn]) { Value = "20" }); row1.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.ConditionColumn]) { Value = "RowOperators.Count > 0" }); row1.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.ActivityCodeColumn]) { Value = "Approver1" }); row1.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.ActivityNameColumn]) { Value = "二级审批" }); row1.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.AutoExtractColumn]) { Value = "True" }); row1.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.OperatorTypeColumn]) { Value = "User" }); row1.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.OperatorColumn]) { Value = "liming,liming,yangrui1" }); return(row1); }
/// <summary> /// 上传属性定义 /// </summary> /// <param name="file"></param> /// <param name="result"></param> protected void ImportSOARole_DoUploadProgress(HttpPostedFile file, UploadProgressResult result) { var fileType = Path.GetExtension(file.FileName).ToLower(); if (string.Compare(fileType, ".xml", true) == 0) { StringBuilder logger = new StringBuilder(); try { CheckEditMode(); var xmlDoc = XDocument.Load(file.InputStream); var wfProcesses = xmlDoc.Descendants("Root"); XElementFormatter formatter = new XElementFormatter(); UploadProgressStatus status = new UploadProgressStatus(); status.CurrentStep = 1; status.MinStep = 0; status.MaxStep = wfProcesses.Count() + 1; logger.AppendFormat("开始导入角色属性定义...\n", file.FileName, status.MaxStep); SOARole role = new SOARole { ID = this.DefinitionID }; SOARolePropertyDefinitionAdapter.Instance.Delete(role); foreach (var wfProcess in wfProcesses) { SOARolePropertyDefinitionCollection rowsColl = (SOARolePropertyDefinitionCollection)formatter.Deserialize(wfProcess); SOARolePropertyDefinitionAdapter.Instance.Update(role, rowsColl); logger.Append("保存成功...\n"); status.CurrentStep++; status.Response(); } logger.AppendFormat("导入完成!", file.FileName); } catch (Exception ex) { logger.AppendFormat("导入错误,{0},错误堆栈:{1}", ex.Message, ex.StackTrace); } result.DataChanged = true; result.CloseWindow = false; result.ProcessLog = logger.ToString(); } }
private static void SetCellValue(SOARolePropertyRow row, SOARolePropertyDefinitionCollection columns, string columnName, string cellValue) { if (columns.ContainsKey(columnName)) { SOARolePropertyValue pValue = row.Values.FindByColumnName(columnName); if (pValue == null) { pValue = new SOARolePropertyValue(columns[columnName]); row.Values.Add(pValue); } pValue.Value = cellValue; } }
private static SOARolePropertyRow PrepareOneRow(SOARolePropertyDefinitionCollection pds) { SOARolePropertyRow row1 = new SOARolePropertyRow() { RowNumber = 1, OperatorType = SOARoleOperatorType.User, Operator = "fanhy" }; row1.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1001" }); row1.Values.Add(new SOARolePropertyValue(pds["PayMethod"]) { Value = "1" }); row1.Values.Add(new SOARolePropertyValue(pds["Age"]) { Value = "30" }); row1.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.ActivitySNColumn]) { Value = "10" }); row1.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.ConditionColumn]) { Value = "RowOperators.Count > 0" }); row1.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.ActivityCodeColumn]) { Value = "Approver1" }); row1.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.ActivityNameColumn]) { Value = "一级审批" }); row1.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.OperatorTypeColumn]) { Value = "User" }); row1.Values.Add(new SOARolePropertyValue(pds[SOARolePropertyDefinition.OperatorColumn]) { Value = "fanhy" }); return(row1); }
public SOARolePropertyRowCollection GetByRole(IRole role, SOARolePropertyDefinitionCollection definition) { role.NullCheck("role"); SOARolePropertyRowCollection result = SOARolePropertiesCache.Instance.GetOrAddNewValue(role.ID.ToRoleIDCacheKey(), (cache, key) => { SOARolePropertyRowCollection properties = LoadByRole(role, definition); MixedDependency dependency = new MixedDependency(new UdpNotifierCacheDependency(), new MemoryMappedFileNotifierCacheDependency()); cache.Add(key, properties, dependency); return properties; }); return result; }
private static SOARolePropertyRowCollection PrepareServerRows(SOARolePropertyDefinitionCollection pds) { SOARolePropertyRowCollection rows = new SOARolePropertyRowCollection(); SOARolePropertyRow row1 = new SOARolePropertyRow() { RowNumber = 1, OperatorType = SOARoleOperatorType.User, Operator = "fanhy" }; row1.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1001" }); row1.Values.Add(new SOARolePropertyValue(pds["PayMethod"]) { Value = "1" }); row1.Values.Add(new SOARolePropertyValue(pds["Age"]) { Value = "30" }); SOARolePropertyRow row2 = new SOARolePropertyRow() { RowNumber = 2, OperatorType = SOARoleOperatorType.User, Operator = "wangli5" }; row2.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1002" }); row2.Values.Add(new SOARolePropertyValue(pds["PayMethod"]) { Value = "2" }); row2.Values.Add(new SOARolePropertyValue(pds["Age"]) { Value = "40" }); rows.Add(row1); rows.Add(row2); return(rows); }
public SOARolePropertyValue ClientToServer(WfClientRolePropertyValue client, SOARolePropertyDefinitionCollection serverColumns, ref SOARolePropertyValue server) { client.NullCheck("client"); serverColumns.NullCheck("serverColumns"); if (server == null) { SOARolePropertyDefinition serverColumn = serverColumns[client.Column.Name]; serverColumn.NullCheck("serverColumn"); server = new SOARolePropertyValue(serverColumn); } server.Value = client.Value; return server; }
public SOARolePropertyValue ClientToServer(WfClientRolePropertyValue client, SOARolePropertyDefinitionCollection serverColumns, ref SOARolePropertyValue server) { client.NullCheck("client"); serverColumns.NullCheck("serverColumns"); if (server == null) { SOARolePropertyDefinition serverColumn = serverColumns[client.Column.Name]; serverColumn.NullCheck("serverColumn"); server = new SOARolePropertyValue(serverColumn); } server.Value = client.Value; return(server); }
/// <summary> /// 填充Excel Xml的标题列 /// </summary> /// <param name="workbook"></param> /// <param name="definition"></param> /// <param name="propertySheetName"></param> private static void FillWorkSheetTitle(WorkbookNode workbook, SOARolePropertyDefinitionCollection definition, string propertySheetName) { WorksheetNode worksheet = GetWorksheetFromWorkbook(workbook, propertySheetName); worksheet.Names.Clear(); workbook.Names.Clear(); worksheet.Table.Rows[1].Cells.Clear(); int row = 3; int column = 1; RowNode titleRow = null; if (worksheet.Table.Rows.Count > 0) { titleRow = worksheet.Table.Rows[1]; } else { titleRow = new RowNode(); worksheet.Table.Rows.Add(titleRow); } foreach (SOARolePropertyDefinition dd in definition) { NamedRangeNode range = new NamedRangeNode(); range.Name = dd.Name; range.RefersTo = string.Format("={0}!R{1}C{2}", worksheet.Name, row, column); workbook.Names.Add(range); CellNode cell = new CellNode(); cell.Data.Value = dd.Description.IsNotEmpty() ? dd.Description : dd.Name; cell.StyleID = "s17"; titleRow.Cells.Add(cell); column++; } }
private static void PrepareActivityMatrixData(string definitionID, string roleID) { ClearAllMatrixData(); SOARole role = new SOARole(); role.ID = definitionID; SOARolePropertyDefinitionCollection definition = PrepareActivityMatrixPropertiesDefinition(definitionID); SOARolePropertyDefinitionAdapter.Instance.Update(role, definition); role = new SOARole(definition); role.ID = roleID; PrepareActivityMatrixRows(role); SOARolePropertiesAdapter.Instance.Update(role); }
private void ExportExcelXPXml() { SOARolePropertyDefinitionCollection definition = SOARolePropertyDefinitionAdapter.Instance.LoadByRoleID(ExportRoleProperty.DefinitionID); string PropertySheetName = "Matrix"; WorkbookNode workbook = ExportToExcelXml(definition, PropertySheetName); SOARole role = new SOARole(definition) { ID = RoleID }; SOARolePropertyRowCollection rows = SOARolePropertiesAdapter.Instance.LoadByRole(role, definition); if (rows.Count > 0) { FillMatrixRowsToWorksheet(workbook, rows); } workbook.Response(GetFileNameByRole(RoleID)); }
private static void AddOneActivityMatrixRow(SOARole role, string auCodeName, int rowNumber, int activitySN, SOARoleOperatorType operatorType, string op) { SOARolePropertyDefinitionCollection definition = role.PropertyDefinitions; SOARolePropertyRow row = new SOARolePropertyRow(role) { RowNumber = rowNumber, OperatorType = operatorType, Operator = op }; row.Values.Add(new SOARolePropertyValue(definition["AdministrativeUnit"]) { Value = auCodeName }); row.Values.Add(new SOARolePropertyValue(definition["ActivitySN"]) { Value = activitySN.ToString() }); role.Rows.Add(row); }
/// <summary> /// 1001应该匹配出3个活动。其中第一个活动两个人 /// </summary> /// <returns></returns> private static SOARole PrepareSOARole(Action <SOARolePropertyRow, SOARolePropertyDefinitionCollection> action = null) { IRole originalRole = GetTestRole(); SOARolePropertyDefinitionAdapter.Instance.Delete(originalRole); SOARolePropertyDefinitionCollection pds = UpdateRolePropertiesDefinition(originalRole); SOARole role = new SOARole(originalRole); role.Rows.Clear(); AddSOARoleRow(role, SOARoleOperatorType.User, "fanhy", "1001", "10", action); AddSOARoleRow(role, SOARoleOperatorType.User, "yangrui1", "1001", "10", action); AddSOARoleRow(role, SOARoleOperatorType.User, "liming", "1001", "20", action); AddSOARoleRow(role, SOARoleOperatorType.User, "quym", "1001", "30", action); SOARolePropertiesAdapter.Instance.Update(role); return(role); }
public SOARolePropertyRow ClientToServer(WfClientRolePropertyRow client, SOARolePropertyDefinitionCollection serverColumns, ref SOARolePropertyRow server) { client.NullCheck("client"); if (server == null) server = new SOARolePropertyRow(); server.RowNumber = client.RowNumber; server.Operator = client.Operator; server.OperatorType = client.OperatorType.ToRoleOperatorType(); foreach (WfClientRolePropertyValue cpv in client.Values) { SOARolePropertyValue spv = null; WfClientRolePropertyValueConverter.Instance.ClientToServer(cpv, serverColumns, ref spv); server.Values.Add(spv); } return server; }
private static SOARolePropertyRowCollection PrepareServerRows(SOARolePropertyDefinitionCollection pds) { SOARolePropertyRowCollection rows = new SOARolePropertyRowCollection(); SOARolePropertyRow row1 = new SOARolePropertyRow() { RowNumber = 1, OperatorType = SOARoleOperatorType.User }; row1.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1001" }); row1.Values.Add(new SOARolePropertyValue(pds["Approver1"]) { Value = "yangrui1" }); row1.Values.Add(new SOARolePropertyValue(pds["Approver2"]) { Value = "quym" }); row1.Values.Add(new SOARolePropertyValue(pds["Approver3"]) { Value = "liming" }); SOARolePropertyRow row2 = new SOARolePropertyRow() { RowNumber = 2, OperatorType = SOARoleOperatorType.User }; row2.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1002" }); row2.Values.Add(new SOARolePropertyValue(pds["Approver1"]) { Value = string.Empty }); row2.Values.Add(new SOARolePropertyValue(pds["Approver2"]) { Value = "quym" }); row2.Values.Add(new SOARolePropertyValue(pds["Approver3"]) { Value = "liming" }); SOARolePropertyRow row3 = new SOARolePropertyRow() { RowNumber = 3, OperatorType = SOARoleOperatorType.User }; row3.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1003" }); row3.Values.Add(new SOARolePropertyValue(pds["Approver1"]) { Value = string.Empty }); row3.Values.Add(new SOARolePropertyValue(pds["Approver2"]) { Value = string.Empty }); row3.Values.Add(new SOARolePropertyValue(pds["Approver3"]) { Value = "liming" }); SOARolePropertyRow row4 = new SOARolePropertyRow() { RowNumber = 4, OperatorType = SOARoleOperatorType.User }; row4.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1003" }); row4.Values.Add(new SOARolePropertyValue(pds["Approver1"]) { Value = "yangrui1" }); row4.Values.Add(new SOARolePropertyValue(pds["Approver2"]) { Value = string.Empty }); row4.Values.Add(new SOARolePropertyValue(pds["Approver3"]) { Value = "liming" }); rows.Add(row1); rows.Add(row2); rows.Add(row3); rows.Add(row4); return rows; }
/// <summary> /// 导出到Excel Xml中,非OpenXml /// </summary> /// <param name="coll"></param> /// <param name="propertySheetName"></param> /// <returns></returns> public static WorkbookNode ExportToExcelXml(SOARolePropertyDefinitionCollection definition, string propertySheetName) { WorkbookNode workbook = new WorkbookNode(); string filePath = HttpContext.Current.Server.MapPath("RolePropertyTemplate.xml"); workbook.Load(filePath); ExportToExcelXml(workbook, definition, propertySheetName); return workbook; }
private static SOARolePropertyRowCollection PrepareServerRows(SOARolePropertyDefinitionCollection pds) { SOARolePropertyRowCollection rows = new SOARolePropertyRowCollection(); SOARolePropertyRow row1 = new SOARolePropertyRow() { RowNumber = 1, OperatorType = SOARoleOperatorType.User, Operator = "fanhy" }; row1.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1001" }); row1.Values.Add(new SOARolePropertyValue(pds["PayMethod"]) { Value = "1" }); row1.Values.Add(new SOARolePropertyValue(pds["Age"]) { Value = "30" }); SOARolePropertyRow row2 = new SOARolePropertyRow() { RowNumber = 2, OperatorType = SOARoleOperatorType.User, Operator = "wangli5" }; row2.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1002" }); row2.Values.Add(new SOARolePropertyValue(pds["PayMethod"]) { Value = "2" }); row2.Values.Add(new SOARolePropertyValue(pds["Age"]) { Value = "40" }); rows.Add(row1); rows.Add(row2); return rows; }
private static SOARolePropertyDefinitionCollection PrepareServerPropertiesDefinition() { SOARolePropertyDefinitionCollection propertiesDefinition = new SOARolePropertyDefinitionCollection(); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "CostCenter", SortOrder = 0 }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "PayMethod", SortOrder = 1 }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "Age", SortOrder = 2, DataType = ColumnDataType.Integer }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "OperatorType", SortOrder = 3, DataType = ColumnDataType.String }); propertiesDefinition.Add(new SOARolePropertyDefinition() { Name = "Operator", SortOrder = 4, DataType = ColumnDataType.String }); return propertiesDefinition; }
/// <summary> /// 填充Excel Xml的标题列 /// </summary> /// <param name="workbook"></param> /// <param name="definition"></param> /// <param name="propertySheetName"></param> private static void FillWorkSheetTitle(WorkbookNode workbook, SOARolePropertyDefinitionCollection definition, string propertySheetName) { WorksheetNode worksheet = GetWorksheetFromWorkbook(workbook, propertySheetName); worksheet.Names.Clear(); workbook.Names.Clear(); worksheet.Table.Rows[1].Cells.Clear(); int row = 3; int column = 1; RowNode titleRow = null; if (worksheet.Table.Rows.Count > 0) titleRow = worksheet.Table.Rows[1]; else { titleRow = new RowNode(); worksheet.Table.Rows.Add(titleRow); } foreach (SOARolePropertyDefinition dd in definition) { NamedRangeNode range = new NamedRangeNode(); range.Name = dd.Name; range.RefersTo = string.Format("={0}!R{1}C{2}", worksheet.Name, row, column); workbook.Names.Add(range); CellNode cell = new CellNode(); cell.Data.Value = dd.Description.IsNotEmpty() ? dd.Description : dd.Name; cell.StyleID = "s17"; titleRow.Cells.Add(cell); column++; } }
/// <summary> /// 将活动矩阵与审批矩阵进行合并 /// </summary> /// <param name="amRows"></param> /// <param name="amDefinitions"></param> /// <param name="apRows"></param> /// <param name="apDefinitions"></param> public static void MergeApprovalMatrix(this SOARolePropertyRowCollection amRows, SOARolePropertyDefinitionCollection amDefinitions, IEnumerable<SOARolePropertyRow> apRows, SOARolePropertyDefinitionCollection apDefinitions) { amDefinitions.NullCheck("amDefinitions"); amRows.NullCheck("amRows"); apDefinitions.NullCheck("apDefinitions"); apRows.NullCheck("apRows"); int maxActivitySN = GetMaxActivitySN(amRows); int maxRowNumber = GetMaxRowNumber(amRows); List<SOARolePropertyRow> newAmRows = new List<SOARolePropertyRow>(); foreach (SOARolePropertyRow apRow in apRows) { int columnIndex = 1; while (columnIndex < apDefinitions.Count) { List<SOARolePropertyRow> amUserRows = FindMatchedActivityMatrixUserRows(amRows, apDefinitions[columnIndex].Name, apRow); List<SOARolePropertyRow> amTemplateRows = FindMatchedActivityMatrixTemplateRows(amRows, apDefinitions[columnIndex].Name, apRow); string apUser = apRow.Values.GetValue(apDefinitions[columnIndex].Name, string.Empty); if (amUserRows.Count == 0 && apUser.IsNotEmpty()) { SOARolePropertyRow templateRow = amTemplateRows.LastOrDefault(); maxActivitySN += 10; SOARolePropertyRow amRow = CreateNewActivityMatrixRow(maxActivitySN, ++maxRowNumber, amDefinitions, templateRow); newAmRows.Add(amRow); MergeToActivityMatrixRow(amRow, amDefinitions, apUser); } else { foreach (SOARolePropertyRow amRow in amUserRows) MergeToActivityMatrixRow(amRow, amDefinitions, apUser); } columnIndex++; } } amRows.CopyFrom(newAmRows); }
/// <summary> /// 通过预先定义好的列定义来构造 /// </summary> /// <param name="definitions"></param> public SOARole(SOARolePropertyDefinitionCollection definitions) { this._PropertyDefinitions = definitions; }
private static SOARolePropertyDefinitionCollection PreparePropertiesDefinition(IRole role) { SOARolePropertyDefinitionCollection propertiesDefinition = new SOARolePropertyDefinitionCollection(); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = "CostCenter", SortOrder = 1 }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = SOARolePropertyDefinition.ConditionColumn, SortOrder = 2 }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = SOARolePropertyDefinition.ActivitySNColumn, SortOrder = 3 }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = SOARolePropertyDefinition.ActivityPropertiesColumn, SortOrder = 4 }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = SOARolePropertyDefinition.IsMergeableColumn, SortOrder = 5, DataType = ColumnDataType.Boolean }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = SOARolePropertyDefinition.TransitionsColumn, SortOrder = 5, DataType = ColumnDataType.String }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = SOARolePropertyDefinition.OperatorTypeColumn, SortOrder = 7, DataType = ColumnDataType.String }); propertiesDefinition.Add(new SOARolePropertyDefinition(role) { Name = SOARolePropertyDefinition.OperatorColumn, SortOrder = 8, DataType = ColumnDataType.String }); return propertiesDefinition; }
private static void AppendOperator(SOARolePropertyRow row, SOARolePropertyDefinitionCollection columns, string apUser) { string columnName = SOARolePropertyDefinition.OperatorColumn; if (columns.ContainsKey(columnName)) { SOARolePropertyValue pValue = row.Values.FindByColumnName(columnName); if (pValue == null) { pValue = new SOARolePropertyValue(columns[columnName]); row.Values.Add(pValue); } if (apUser.IsNotEmpty()) { pValue.Value = pValue.Value.NullOrEmptyIs(row.Operator); if (pValue.Value.IsNotEmpty()) pValue.Value += ","; else pValue.Value = string.Empty; pValue.Value += apUser; row.Operator = pValue.Value; } } }
private static SOARolePropertiesQueryParamCollection CreateQueryParams(SOARolePropertyDefinitionCollection propertyDefines, IWfProcess process) { SOARolePropertiesQueryParamCollection queryParams = new SOARolePropertiesQueryParamCollection(); WfApplicationParametersContext apContext = WfApplicationParametersContext.Current; //如果是审批矩阵,只取第一列作为条件 if (propertyDefines.MatrixType == WfMatrixType.ApprovalMatrix) { if (propertyDefines.Count > 0) { SOARolePropertyDefinition pd = propertyDefines[0]; object arpValue = GetQueryValueFromContext(pd, process); queryParams.Add(new SOARolePropertiesQueryParam() { QueryName = pd.Name, QueryValue = arpValue }); } } else { //活动矩阵和角色矩阵,排除保留字 foreach (SOARolePropertyDefinition pd in propertyDefines) { //是否是可查询的列 if (IsQueryableColumn(pd, propertyDefines)) { object arpValue = GetQueryValueFromContext(pd, process); queryParams.Add(new SOARolePropertiesQueryParam() { QueryName = pd.Name, QueryValue = arpValue }); } } } return queryParams; }
public void Update(IRole role, SOARolePropertyDefinitionCollection properties) { role.NullCheck("role"); properties.NullCheck("properties"); this.Update(role.ID, properties); }
/// <summary> /// 创建一个新的上下文,并且使用它进行计算。计算完成后恢复上下文。 /// </summary> /// <param name="propertyDefines"></param> /// <param name="process"></param> /// <param name="action"></param> public static void DoNewContextAction(SOARolePropertyDefinitionCollection propertyDefines, IWfProcess process, Action<SOARoleContext> action) { if (action != null) { SOARoleContext originalRoleContext = SOARoleContext.Current; try { SOARoleContext.Current = null; SOARoleContext.CreateContext(propertyDefines, process); action(SOARoleContext.Current); } finally { SOARoleContext.Current = originalRoleContext; } } }
public void Update(string roleID, SOARolePropertyDefinitionCollection properties) { roleID.CheckStringIsNullOrEmpty("roleID"); properties.NullCheck("properties"); StringBuilder strB = new StringBuilder(); strB.AppendFormat("DELETE WF.ROLE_PROPERTIES_DEFINITIONS WHERE {0}", roleID.ToRoleIDCriteria()); foreach (SOARolePropertyDefinition property in properties) { if (strB.Length > 0) strB.Append(TSqlBuilder.Instance.DBStatementSeperator); property.RoleID = roleID; strB.AppendFormat(ORMapping.GetInsertSql(property, TSqlBuilder.Instance)); } using (TransactionScope scope = TransactionScopeFactory.Create()) { DbHelper.RunSql(strB.ToString(), GetConnectionName()); scope.Complete(); } string cacheKey = roleID.ToRoleIDCacheKey(); CacheNotifyData notifyData1 = new CacheNotifyData(typeof(SOARolePropertiesDefinitionCache), cacheKey, CacheNotifyType.Invalid); CacheNotifyData notifyData2 = new CacheNotifyData(typeof(SOARolePropertiesCache), cacheKey, CacheNotifyType.Invalid); UdpCacheNotifier.Instance.SendNotifyAsync(notifyData1, notifyData2); MmfCacheNotifier.Instance.SendNotify(notifyData1, notifyData2); }
///// <summary> ///// 将活动矩阵与审批矩阵进行合并 ///// </summary> ///// <param name="amRows"></param> ///// <param name="amDefinitions"></param> ///// <param name="apRows"></param> ///// <param name="apDefinitions"></param> //public static void MergeApprovalMatrix(this SOARolePropertyRowCollection amRows, SOARolePropertyDefinitionCollection amDefinitions, IEnumerable<SOARolePropertyRow> apRows, SOARolePropertyDefinitionCollection apDefinitions) //{ // amDefinitions.NullCheck("amDefinitions"); // amRows.NullCheck("amRows"); // apDefinitions.NullCheck("apDefinitions"); // apRows.NullCheck("apRows"); // int maxActivitySN = GetMaxActivitySN(amRows); // int maxRowNumber = GetMaxRowNumber(amRows); // List<SOARolePropertyRow> newAmRows = new List<SOARolePropertyRow>(); // foreach (SOARolePropertyRow apRow in apRows) // { // int columnIndex = 1; // while (columnIndex < apDefinitions.Count) // { // SOARolePropertyRow templateRow = null; // SOARolePropertyRow amRow = FindMatchedActivityMatrixRow(amRows, apDefinitions[columnIndex].Name, apRow, out templateRow); // string apUser = apRow.Values.GetValue(apDefinitions[columnIndex].Name, string.Empty); // if (amRow == null && apUser.IsNotEmpty()) // { // maxActivitySN += 10; // amRow = CreateNewActivityMatrixRow(maxActivitySN, ++maxRowNumber, amDefinitions, templateRow); // newAmRows.Add(amRow); // } // if (amRow != null) // MergeToActivityMatrixRow(amRow, amDefinitions, apUser); // columnIndex++; // } // } // amRows.CopyFrom(newAmRows); //} private static SOARolePropertyRow CreateNewActivityMatrixRow(int activitySN, int rowNumber, SOARolePropertyDefinitionCollection amDefinitions, SOARolePropertyRow templateRow) { SOARolePropertyRow amRow = null; if (templateRow != null) amRow = new SOARolePropertyRow(templateRow, rowNumber); else amRow = new SOARolePropertyRow() { RowNumber = rowNumber }; amRow.OperatorType = SOARoleOperatorType.User; amRow.Operator = string.Empty; SetCellValue(amRow, amDefinitions, SOARolePropertyDefinition.OperatorColumn, string.Empty); SetCellValue(amRow, amDefinitions, SOARolePropertyDefinition.ActivitySNColumn, activitySN.ToString()); return amRow; }
private static bool IsQueryableColumn(SOARolePropertyDefinition pd, SOARolePropertyDefinitionCollection propertyDefines) { bool isReservered = true; switch (propertyDefines.MatrixType) { case WfMatrixType.RoleMatrix: isReservered = SOARolePropertyDefinition.IsRoleMatrixReservedPropertyName(pd.Name); break; case WfMatrixType.ActivityMatrix: isReservered = SOARolePropertyDefinition.IsActivityMatrixReservedPropertyName(pd.Name); break; } return isReservered == false; }
private static SOARolePropertyRowCollection PrepareRows(SOARolePropertyDefinitionCollection pds) { SOARolePropertyRowCollection rows = new SOARolePropertyRowCollection(); SOARolePropertyRow row1 = new SOARolePropertyRow() { RowNumber = 1, OperatorType = SOARoleOperatorType.User, Operator = "fanhy" }; row1.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1001" }); row1.Values.Add(new SOARolePropertyValue(pds["PayMethod"]) { Value = "1" }); row1.Values.Add(new SOARolePropertyValue(pds["Age"]) { Value = "30" }); SOARolePropertyRow row2 = new SOARolePropertyRow() { RowNumber = 2, OperatorType = SOARoleOperatorType.User, Operator = "wangli5" }; row2.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1002" }); row2.Values.Add(new SOARolePropertyValue(pds["PayMethod"]) { Value = "2" }); row2.Values.Add(new SOARolePropertyValue(pds["Age"]) { Value = "40" }); SOARolePropertyRow row3 = new SOARolePropertyRow() { RowNumber = 3, OperatorType = SOARoleOperatorType.Role, Operator = RolesDefineConfig.GetConfig().RolesDefineCollection["nestedRole"].Roles }; row3.Values.Add(new SOARolePropertyValue(pds["CostCenter"]) { Value = "1002" }); row3.Values.Add(new SOARolePropertyValue(pds["PayMethod"]) { Value = "2" }); row3.Values.Add(new SOARolePropertyValue(pds["Age"]) { Value = "60" }); rows.Add(row1); rows.Add(row2); rows.Add(row3); return rows; }