示例#1
0
        private IUser GetCurrentUserInfo()
        {
            IUser result = null;

            if (OriginalActivity != null)
            {
                //先检查能否办理
                WfAssignee assignee = OriginalActivity.Assignees.FindFirstUser(DeluxeIdentity.CurrentUser.ID);

                if (assignee != null)
                {
                    result = assignee.User;
                }
            }

            if (result != null && result.AllRelativeUserInfo.Count > 1)
            {
                //如果可以办理,则检查兼职信息
                if (OriginalActivity != null)
                {
                    result = FindFirstUserInDepartment(result.AllRelativeUserInfo,
                                                       OriginalActivity.Process.OwnerDepartment);
                }
            }

            if (result == null)
            {
                result = DeluxeIdentity.CurrentUser;
            }

            return(result);
        }
        public void ServerToClient(WfAssignee server, ref WfClientAssignee client)
        {
            server.NullCheck("server");

            if (client == null)
                client = new WfClientAssignee();

            client.AssigneeType = server.AssigneeType.ToClientAssigneeType();
            client.Delegator = (WfClientUser)server.Delegator.ToClientOguObject();
            client.Selected = server.Selected;
            client.User = (WfClientUser)server.User.ToClientOguObject();
            client.Url = server.Url;
        }
        public void ClientToServer(WfClientAssignee client, ref WfAssignee server)
        {
            client.NullCheck("client");

            if (server == null)
                server = new WfAssignee();

            server.AssigneeType = client.AssigneeType.ToAssigneeType();
            server.Delegator = (IUser)client.Delegator.ToOguObject();
            server.Selected = client.Selected;
            server.User = (IUser)client.User.ToOguObject();
            server.Url = client.Url;
        }
示例#4
0
 public static void AreSame(this WfClientAssignee expected, WfAssignee actual)
 {
     if (expected != null && actual != null)
     {
         Assert.AreEqual(expected.AssigneeType, actual.AssigneeType.ToClientAssigneeType());
         Assert.AreEqual(expected.Url, actual.Url);
         Assert.IsTrue(expected.User.AreSame(actual.User));
         Assert.IsTrue(expected.Delegator.AreSame(actual.Delegator));
     }
     else
     {
         Assert.AreEqual(expected, actual);
     }
 }
        public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
        {
            WfAssignee assignee = new WfAssignee();

            assignee.AssigneeType = DictionaryHelper.GetValue(dictionary, "AssigneeType", WfAssigneeType.Normal);
            assignee.User = JSONSerializerExecute.Deserialize<OguUser>(dictionary["User"]);
            assignee.Url = DictionaryHelper.GetValue(dictionary, "Url", (string)null);
            assignee.Selected = DictionaryHelper.GetValue(dictionary, "Selected", true);

            if (dictionary.ContainsKey("Delegator"))
                assignee.Delegator = JSONSerializerExecute.Deserialize<OguUser>(dictionary["Delegator"]);

            return assignee;
        }
示例#6
0
        public WfExecutorBase CreateExecutor()
        {
            WfExecutorBase executor = null;

            switch (this.OperationType)
            {
            case WfControlOperationType.MoveTo:
                executor = new WfMoveToExecutor(
                    WfClientContext.Current.OriginalActivity,
                    WfClientContext.Current.OriginalActivity, ToTransferParams(),
                    WfClientContext.Current.Locks);
                break;

            case WfControlOperationType.Consign:
            {
                WfAssigneeCollection assignees = new WfAssigneeCollection();

                WfAssignee assignee = new WfAssignee(WfClientContext.Current.User);

                assignees.Add(assignee);

                executor = new WfConsignExecutor(
                    WfClientContext.Current.OriginalActivity,
                    WfClientContext.Current.OriginalActivity,
                    assignees,
                    this.Assignees.ToUsers(),
                    this.Circulators.ToUsers(),
                    BlockingType,
                    SequenceType);
            }
            break;

            case WfControlOperationType.Return:
                if (this._RejectMode == WfRejectMode.LikeAddApprover)
                {
                    executor = new WfAddApproverExecutor(WfClientContext.Current.CurrentActivity, WfClientContext.Current.CurrentActivity.Process.Activities.FindActivityByDescriptorKey(TargetActivityDescriptor.Key));
                }
                else
                {
                    executor = new WfReturnExecutor(WfClientContext.Current.CurrentActivity, WfClientContext.Current.CurrentActivity.Process.Activities.FindActivityByDescriptorKey(TargetActivityDescriptor.Key));
                }
                break;

            default:
                throw new WfRuntimeException(Translator.Translate(Define.DefaultCulture, "不能处理操作类型为{0}", this.OperationType));
            }

            return(executor);
        }
        public void ServerToClient(WfAssignee server, ref WfClientAssignee client)
        {
            server.NullCheck("server");

            if (client == null)
            {
                client = new WfClientAssignee();
            }

            client.AssigneeType = server.AssigneeType.ToClientAssigneeType();
            client.Delegator    = (WfClientUser)server.Delegator.ToClientOguObject();
            client.Selected     = server.Selected;
            client.User         = (WfClientUser)server.User.ToClientOguObject();
            client.Url          = server.Url;
        }
        public void ClientToServer(WfClientAssignee client, ref WfAssignee server)
        {
            client.NullCheck("client");

            if (server == null)
            {
                server = new WfAssignee();
            }

            server.AssigneeType = client.AssigneeType.ToAssigneeType();
            server.Delegator    = (IUser)client.Delegator.ToOguObject();
            server.Selected     = client.Selected;
            server.User         = (IUser)client.User.ToOguObject();
            server.Url          = client.Url;
        }
        public void ClientToServer(WfClientAssigneeCollection client, WfAssigneeCollection server)
        {
            client.NullCheck("client");
            server.NullCheck("server");

            server.Clear();

            foreach (WfClientAssignee c in client)
            {
                WfAssignee s = null;

                WfClientAssigneeConverter.Instance.ClientToServer(c, ref s);

                server.Add(s);
            }
        }
        private static WfAssignee DataRowToAssignee(DataRow row)
        {
            WfAssignee result = new WfAssignee();

            result.AssigneeType = (WfAssigneeType)Enum.Parse(typeof(WfAssigneeType), row["ASSIGNEE_TYPE"].ToString(), true);

            OguUser user = new OguUser();
            user.ID = row["USER_ID"].ToString();
            user.Name = row["USER_NAME"].ToString();
            user.FullPath = row["USER_PATH"].ToString();

            result.User = user;

            return result;
        }
示例#11
0
        /// <summary>
        /// 得到被委托的人员
        /// </summary>
        /// <param name="sourceAssignees"></param>
        /// <returns></returns>
        private static WfAssigneeCollection GetDelegatedAssignees(WfAssigneeCollection sourceAssignees, IWfProcess process)
        {
            WfAssigneeCollection result = new WfAssigneeCollection();

            foreach (WfAssignee sourceAssignee in sourceAssignees)
            {
                WfDelegationCollection delegations = WfDelegationSettings.GetConfig().Reader.GetUserActiveDelegations(sourceAssignee.User, process);

                foreach (WfDelegation delegation in delegations)
                {
                    OguUser user = new OguUser(delegation.DestinationUserID);

                    user.DisplayName = delegation.DestinationUserName;
                    user.Name = delegation.DestinationUserName;

                    OguUser delegator = new OguUser(delegation.SourceUserID);
                    delegator.DisplayName = delegation.SourceUserName;
                    delegator.Name = delegation.SourceUserName;

                    WfAssignee assignee = new WfAssignee(user);

                    assignee.AssigneeType = WfAssigneeType.Delegated;
                    assignee.Delegator = delegator;

                    result.Add(assignee);
                }
            }

            return result;
        }
        public WfExecutorBase CreateExecutor()
        {
            WfExecutorBase executor = null;

            switch (this.OperationType)
            {
                case WfControlOperationType.MoveTo:
                    executor = new WfMoveToExecutor(
                        WfClientContext.Current.OriginalActivity,
                        WfClientContext.Current.OriginalActivity, ToTransferParams(),
                        WfClientContext.Current.Locks);
                    break;
                case WfControlOperationType.Consign:
                    {
                        WfAssigneeCollection assignees = new WfAssigneeCollection();

                        WfAssignee assignee = new WfAssignee(WfClientContext.Current.User);

                        assignees.Add(assignee);

                        executor = new WfConsignExecutor(
                            WfClientContext.Current.OriginalActivity,
                            WfClientContext.Current.OriginalActivity,
                            assignees,
                            this.Assignees.ToUsers(),
                            this.Circulators.ToUsers(),
                            BlockingType,
                            SequenceType);
                    }
                    break;
                case WfControlOperationType.Return:
                    if (this._RejectMode == WfRejectMode.LikeAddApprover)
                        executor = new WfAddApproverExecutor(WfClientContext.Current.CurrentActivity, WfClientContext.Current.CurrentActivity.Process.Activities.FindActivityByDescriptorKey(TargetActivityDescriptor.Key));
                    else
                        executor = new WfReturnExecutor(WfClientContext.Current.CurrentActivity, WfClientContext.Current.CurrentActivity.Process.Activities.FindActivityByDescriptorKey(TargetActivityDescriptor.Key));
                    break;
                default:
                    throw new WfRuntimeException(Translator.Translate(Define.DefaultCulture, "不能处理操作类型为{0}", this.OperationType));
            }

            return executor;
        }
 public static void AreSame(this WfClientAssignee expected, WfAssignee actual)
 {
     if (expected != null && actual != null)
     {
         Assert.AreEqual(expected.AssigneeType, actual.AssigneeType.ToClientAssigneeType());
         Assert.AreEqual(expected.Url, actual.Url);
         Assert.IsTrue(expected.User.AreSame(actual.User));
         Assert.IsTrue(expected.Delegator.AreSame(actual.Delegator));
     }
     else
         Assert.AreEqual(expected, actual);
 }