//替换内容 private bool ReplaceName(XmlNode document, string oldName, string newName, AcitivityStatus status) { XmlNode node = FindNode(document, oldName); if (node != null) { XmlAttribute att = node.Attributes[X_NAME]; if (!string.IsNullOrEmpty(newName)) { att.Value = att.Value + "_" + newName; //换名字 } if (status == AcitivityStatus.Current) { XmlNode currentNode = node.OwnerDocument.CreateElement(FLCURRENT, node.NamespaceURI); XmlAttribute currentAtt = node.OwnerDocument.CreateAttribute(X_NAME, XMLNS_X); currentAtt.Value = att.Value; currentNode.Attributes.Append(currentAtt); node.ParentNode.InsertAfter(currentNode, node); node.ParentNode.RemoveChild(node); } else if (status == AcitivityStatus.Approved) { XmlNode passNode = node.OwnerDocument.CreateElement(FLPASS, node.NamespaceURI); XmlAttribute passAtt = node.OwnerDocument.CreateAttribute(X_NAME, XMLNS_X); passAtt.Value = att.Value; passNode.Attributes.Append(passAtt); node.ParentNode.InsertAfter(passNode, node); node.ParentNode.RemoveChild(node); } return true; } return false; }
private void AddToTable(string actitvityName, string roleName, string userName, AcitivityStatus status) { //int seq = PreviewTable.Rows.Count + 1; string str = string.Empty; switch (status) { case AcitivityStatus.Approved: str = strApproved; break; case AcitivityStatus.Current: str = strWaiting; break; case AcitivityStatus.PlusApproved: str = strPlusApproved; break; } PreviewTable.Rows.Add(new object[] { 0, string.Empty, actitvityName, roleName, userName, str }); }
private void AddToTable(string detailActitvityName, string roleName, string userName, AcitivityStatus status, string condition) { string str = string.Empty; switch (status) { case AcitivityStatus.Approved: str = strApproved; break; case AcitivityStatus.Current: str = strWaiting; break; case AcitivityStatus.PlusApproved: str = strPlusApproved; break; } //find the other detail int index = detailActitvityName.LastIndexOf('_'); string detailName = index > 0 ? detailActitvityName.Substring(0, index) : detailActitvityName; int rowIndex = -1; for (int i = 0; i < PreviewTable.Rows.Count; i++) { string activityName = (string)PreviewTable.Rows[i][2]; if (activityName.StartsWith(detailName + "_")) { PreviewTable.Rows[i][1] = condition; rowIndex = i; } } if (rowIndex == -1) { PreviewTable.Rows.Add(new object[] { 0, string.Empty, detailActitvityName, roleName, userName, str }); } else { if (rowIndex == PreviewTable.Rows.Count - 1) { PreviewTable.Rows.Add(new object[] { 0, condition, detailActitvityName, roleName, userName, str }); } else { DataRow row = PreviewTable.NewRow(); row.ItemArray = new object[] { 0, condition, detailActitvityName, roleName, userName, str }; PreviewTable.Rows.InsertAt(row, rowIndex + 1); } } }
private void AddSendTo(string activityName, SendTo send, AcitivityStatus status) { FLActivity activity = Instance.RootFLActivity.GetFLActivityByName(activityName); if (activity != null) { if (activity is IFLApproveBranchActivity) { activityName = activityName.Replace("-", "_"); InsertApproveStand(Document.DocumentElement, (activity as IFLApproveBranchActivity).ParentActivity, activityName); } else if (activity is ISupportFLDetailsActivity /*&& !string.IsNullOrEmpty((activity as ISupportFLDetailsActivity).SendToId2)*/) { if (!string.IsNullOrEmpty(activity.Location)) { var index = activity.Name.LastIndexOf('_'); if (index > 0) { var detailName = activity.Name.Substring(0, activity.Name.LastIndexOf('_')); FLActivity locationActivity = Instance.RootFLActivity.GetFLActivityByName(detailName); if (locationActivity != null && locationActivity is FLDetailsActivity) { InsertDetailStand(Document.DocumentElement, detailName, activity.Name, activity.UpperParallel, activity.UpperParallelBranch); } } } } } if (Type == PreviewType.Image) { if (status != AcitivityStatus.PlusApproved) { string newName = "Unknown"; //为Activity加上待办者的名字 if (!string.IsNullOrEmpty(send.UserID)) { string name = Global.GetUserName(send.UserID, ClientInfo); newName = name; } else if (!string.IsNullOrEmpty(send.RoleID)) { //andy: 取第一个用户的名字 List<string> users = Global.GetUsersIdsByRoleId(send.RoleID, ClientInfo); if (users.Count > 0) { string name = Global.GetUserName(users[0], ClientInfo); newName = name; } else { newName = "Nobody"; } } ReplaceName(Document.DocumentElement, activityName, newName, status); } } else { string roleID = send.RoleID; string userID = send.UserID; string userName = string.Empty; if (!string.IsNullOrEmpty(send.UserID)) { if (string.IsNullOrEmpty(roleID)) { userID = send.UserID; List<string> roles = Global.GetRoleIdsByUserId(userID, clientInfo); if (roles.Count > 0) { roleID = roles[0]; } } userName = string.IsNullOrEmpty(userID) ? string.Empty : Global.GetUserName(userID, clientInfo); } else if (string.IsNullOrEmpty(userID) && !string.IsNullOrEmpty(send.RoleID)) { roleID = send.RoleID; List<string> users = Global.GetUsersIdsByRoleId(send.RoleID, ClientInfo); if (users.Count > 0) { userID = users[0]; foreach (string user in users) { if (!string.IsNullOrEmpty(userName)) { userName += ","; } userName += Global.GetUserName(user, clientInfo); } } } string roleName = string.IsNullOrEmpty(roleID) ? string.Empty : Global.GetGroupName(roleID, clientInfo); if (roleName.Contains("/")) { roleName = roleName.Split('/')[0]; } //string userName = string.IsNullOrEmpty(userID) ? string.Empty : Global.GetUserName(userID, clientInfo); if (activity is ISupportFLDetailsActivity && !string.IsNullOrEmpty((activity as ISupportFLDetailsActivity).SendToId2)) { if (string.IsNullOrEmpty(activity.UpperParallel)) { AddToTable(activityName, roleName, userName, status); } else { string condtion = "Or"; if (activity.IsUpperParallelAnd) { condtion = "And"; } AddToTable(activityName, roleName, userName, status, condtion); } } else { AddToTable(activityName, roleName, userName, status); } } }