Ejemplo n.º 1
0
        //替换内容
        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;
        }
Ejemplo n.º 2
0
 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 });
 }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 4
0
        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);
                }
            }
        }