Beispiel #1
0
        public void ServerToClient(IWfMainStreamActivityDescriptor server, ref WfClientMainStreamActivityDescriptor client)
        {
            server.NullCheck("server");

            WfClientActivityDescriptor clientActDesp = null;

            WfClientActivityDescriptorConverter.Instance.ServerToClient((WfActivityDescriptor)server.Activity, ref clientActDesp);

            if (client == null)
            {
                client = new WfClientMainStreamActivityDescriptor(clientActDesp);
            }

            client.Level = server.Level;

            foreach (WfActivityDescriptor actDesp in server.AssociatedActivities)
            {
                WfClientActivityDescriptor cad = null;

                WfClientActivityDescriptorConverter.Instance.ServerToClient(actDesp, ref cad);

                client.AssociatedActivities.Add(cad);
            }

            FillStatusAndAssignees(client, server);
        }
        private static void FillStatusAndAssignees(WfClientMainStreamActivityDescriptor client, IWfMainStreamActivityDescriptor server)
        {
            IWfActivity actInstance = server.Activity.ProcessInstance.Activities.
                FindActivityByDescriptorKey(server.Activity.Key);

            if (actInstance != null)
            {
                client.Status = actInstance.Status.ToClientActivityStatus();
                client.Elapsed = server.Elapsed;
                client.ActivityInstanceID = actInstance.ID;
                client.Operator = (WfClientUser)actInstance.Operator.ToClientOguObject();
                client.BranchProcessGroupsCount = actInstance.BranchProcessGroups.Count;

                client.FromTransitionDescriptor = ConvertServerTransitionToClient(actInstance.FromTransitionDescriptor);
                client.ToTransitionDescriptor = ConvertServerTransitionToClient(actInstance.ToTransitionDescriptor);

                if (actInstance.Assignees.Count != 0)
                {
                    WfClientAssigneeCollectionConverter.Instance.ServerToClient(actInstance.Assignees, client.Assignees);
                }
                else
                {
                    WfAssigneeCollection candidates = actInstance.Candidates.GetSelectedAssignees();

                    WfClientAssigneeCollectionConverter.Instance.ServerToClient(candidates, client.Assignees);
                }
            }
        }
Beispiel #3
0
        private Control GetActivityPeopleNameDisplayControl(IWfActivity wfActivity, IWfMainStreamActivityDescriptor mainStreamActivity)
        {
            Control userNames = null;

            if (wfActivity.Operator != null && wfActivity.Status != WfActivityStatus.NotRunning)
            {
                userNames = GetUserNameControl(wfActivity.Operator);
            }
            else
            if (wfActivity.Assignees.Count != 0)
            {
                userNames = GetCandidatesOrAssigneesControl(wfActivity.Assignees, mainStreamActivity.Activity.Name);
            }
            else
            {
                WfAssigneeCollection candidates = wfActivity.Candidates.GetSelectedAssignees();

                if (candidates.Count != 0)
                {
                    userNames = GetCandidatesOrAssigneesControl(candidates, mainStreamActivity.Activity.Name);
                }
                else
                {
                    userNames = new HtmlGenericControl("span")
                    {
                        InnerText = string.Empty
                    }
                };
            }

            return(userNames);
        }
Beispiel #4
0
        private string GetActivityTooltipText(IWfMainStreamActivityDescriptor mainStreamActivity)
        {
            IWfActivity wfActivity = mainStreamActivity.Activity.ProcessInstance.Activities.
                                     FindActivityByDescriptorKey(mainStreamActivity.Activity.Key);

            return(GetActivityPeopleNameDisplayText(wfActivity, mainStreamActivity));
        }
		private void GenerateStepUsers(IWfMainStreamActivityDescriptor msActivity, Control container)
		{
			IWfProcess process = msActivity.Activity.Process.ProcessInstance;

			if (process != null)
			{
				IWfActivity activity = process.Activities.FindActivityByDescriptorKey(msActivity.Activity.Key);

				RenderActivityUsers(activity.Candidates.GetSelectedAssignees().ToUsers(), msActivity, container);
			}
		}
Beispiel #6
0
        private void GenerateStepUsers(IWfMainStreamActivityDescriptor msActivity, Control container)
        {
            IWfProcess process = msActivity.Activity.Process.ProcessInstance;

            if (process != null)
            {
                IWfActivity activity = process.Activities.FindActivityByDescriptorKey(msActivity.Activity.Key);

                RenderActivityUsers(activity.Candidates.GetSelectedAssignees().ToUsers(), msActivity, container);
            }
        }
		private void RenderActivity(HtmlTableCell actCell, IWfMainStreamActivityDescriptor msActDesp)
		{
			HtmlGenericControl actName = new HtmlGenericControl("div");

			actName.Attributes["class"] = "actName";
			actName.InnerText = msActDesp.Activity.Name;

			actCell.Controls.Add(actName);

			bool bGenerateUsers = ShowStepUsers == ShowStepUsersDefine.All;

			if (!bGenerateUsers)
				bGenerateUsers = (CurrentStepIsDrafter || WfClientContext.Current.InAdminMode);

			if (bGenerateUsers)
				GenerateStepUsers(msActDesp, actCell);
		}
Beispiel #8
0
        private Control GetActivityDisplayControl(IWfMainStreamActivityDescriptor mainStreamActivity)
        {
            Control result = null;

            IWfActivity wfActivity = mainStreamActivity.Activity.ProcessInstance.Activities.
                                     FindActivityByDescriptorKey(mainStreamActivity.Activity.Key);

            if (NeedToShowActivityName(mainStreamActivity.Activity))
            {
                result = new LiteralControl(HttpUtility.HtmlEncode(mainStreamActivity.Activity.Name));
            }
            else
            {
                result = GetActivityPeopleNameDisplayControl(wfActivity, mainStreamActivity);
            }

            return(result);
        }
Beispiel #9
0
        private void RenderActivity(HtmlTableCell actCell, IWfMainStreamActivityDescriptor msActDesp)
        {
            HtmlGenericControl actName = new HtmlGenericControl("div");

            actName.Attributes["class"] = "actName";
            actName.InnerText           = msActDesp.Activity.Name;

            actCell.Controls.Add(actName);

            bool bGenerateUsers = ShowStepUsers == ShowStepUsersDefine.All;

            if (!bGenerateUsers)
            {
                bGenerateUsers = (CurrentStepIsDrafter || WfClientContext.Current.InAdminMode);
            }

            if (bGenerateUsers)
            {
                GenerateStepUsers(msActDesp, actCell);
            }
        }
        public void ServerToClient(IWfMainStreamActivityDescriptor server, ref WfClientMainStreamActivityDescriptor client)
        {
            server.NullCheck("server");

            WfClientActivityDescriptor clientActDesp = null;

            WfClientActivityDescriptorConverter.Instance.ServerToClient((WfActivityDescriptor)server.Activity, ref clientActDesp);

            if (client == null)
                client = new WfClientMainStreamActivityDescriptor(clientActDesp);

            client.Level = server.Level;

            foreach (WfActivityDescriptor actDesp in server.AssociatedActivities)
            {
                WfClientActivityDescriptor cad = null;

                WfClientActivityDescriptorConverter.Instance.ServerToClient(actDesp, ref cad);

                client.AssociatedActivities.Add(cad);
            }

            FillStatusAndAssignees(client, server);
        }
Beispiel #11
0
        private string GetActivityPeopleNameDisplayText(IWfActivity wfActivity, IWfMainStreamActivityDescriptor mainStreamActivity)
        {
            string result = string.Empty;

            if (wfActivity.Operator != null && wfActivity.Status != WfActivityStatus.NotRunning)
            {
                result = wfActivity.Operator.DisplayName;
            }
            else
            if (wfActivity.Assignees.Count != 0)
            {
                result = GetCandidatesOrAssigneesText(wfActivity.Assignees, mainStreamActivity.Activity.Name);
            }
            else
            {
                WfAssigneeCollection candidates = wfActivity.Candidates.GetSelectedAssignees();

                if (candidates.Count != 0)
                {
                    result = GetCandidatesOrAssigneesText(candidates, mainStreamActivity.Activity.Name);
                }
            }
            return(result);
        }
		private void RenderLevelOpinionsPlaceHolders(HtmlTableCell opinionCell, IWfMainStreamActivityDescriptor msActDesp)
		{
			IWfActivityDescriptor nextStepSelectorActDesp = WfClientContext.Current.OriginalCurrentActivity.Descriptor;

			RenderLevelOpinionsPlaceHolders(
				opinionCell,
				msActDesp.Activity,
				GetInputActivityDescriptorFromGroup(msActDesp),
				nextStepSelectorActDesp);
		}
		private IWfActivityDescriptor GetInputActivityDescriptorFromGroup(IWfMainStreamActivityDescriptor msActDesp)
		{
			IWfActivityDescriptor result = null;

			if (CanActivityInputOpinion(msActDesp.Activity) == false)
			{
				foreach (IWfActivityDescriptor actDesp in msActDesp.AssociatedActivities)
				{
					if (CanActivityInputOpinion(actDesp))
					{
						result = actDesp;
						break;
					}
				}
			}
			else
				result = msActDesp.Activity;

			return result;
		}
		private string GetActivityPeopleNameDisplayText(IWfActivity wfActivity, IWfMainStreamActivityDescriptor mainStreamActivity)
		{
			string result = string.Empty;

			if (wfActivity.Operator != null && wfActivity.Status != WfActivityStatus.NotRunning)
			{
				result = wfActivity.Operator.DisplayName;
			}
			else
				if (wfActivity.Assignees.Count != 0)
				{
					result = GetCandidatesOrAssigneesText(wfActivity.Assignees, mainStreamActivity.Activity.Name);
				}
				else
				{
					WfAssigneeCollection candidates = wfActivity.Candidates.GetSelectedAssignees();

					if (candidates.Count != 0)
						result = GetCandidatesOrAssigneesText(candidates, mainStreamActivity.Activity.Name);
				}
			return result;
		}
		private Control GetActivityPeopleNameDisplayControl(IWfActivity wfActivity, IWfMainStreamActivityDescriptor mainStreamActivity)
		{
			Control userNames = null;

			if (wfActivity.Operator != null && wfActivity.Status != WfActivityStatus.NotRunning)
			{
				userNames = GetUserNameControl(wfActivity.Operator);
			}
			else
				if (wfActivity.Assignees.Count != 0)
				{
					userNames = GetCandidatesOrAssigneesControl(wfActivity.Assignees, mainStreamActivity.Activity.Name);
				}
				else
				{
					WfAssigneeCollection candidates = wfActivity.Candidates.GetSelectedAssignees();

					if (candidates.Count != 0)
						userNames = GetCandidatesOrAssigneesControl(candidates, mainStreamActivity.Activity.Name);
					else
						userNames = new HtmlGenericControl("span") { InnerText = string.Empty };
				}

			return userNames;
		}
		private void RenderActivityUsers(IEnumerable<IUser> users, IWfMainStreamActivityDescriptor msActivity, Control container)
		{
			foreach (IUser user in users)
			{
				bool showUserInfo = false;

				if (TitleShowMode == UserTitleShowMode.ShowActivityNameAndTitle)
					showUserInfo = true;
				else
				{
					if (TitleShowMode == UserTitleShowMode.ShowUserTitleWhenActivityNameEmpty)
						showUserInfo = string.IsNullOrEmpty(msActivity.Activity.Name);
				}

				if (showUserInfo)
				{
					HtmlGenericControl userTitle = new HtmlGenericControl("div");

					try
					{
						string titleText = string.Empty;

						string deptName = string.Empty;

						if ((TitleShowMode & UserTitleShowMode.ShowDepartmentName) != UserTitleShowMode.None)
							deptName = GetUserDepartmentName(user);

						if (string.IsNullOrEmpty(user.Occupation))
							titleText = deptName;
						else
							titleText = deptName.IsNotEmpty() ? deptName + "/" + user.Occupation : user.Occupation;

						userTitle.InnerText = titleText;

						if ((int)user.Properties.GetValue("STATUS", 1) != 1)
						{
							userTitle.Attributes["title"] = string.Format("{0} {1}",
								titleText,
								Translator.Translate(Define.DefaultCulture, "帐号已注销") + ". " +
								Translator.Translate(Define.DefaultCulture, "请联系管理员调整流程"));
						}
						else
						{
							userTitle.Attributes["class"] = "opDept";
						}
					}
					catch (System.Exception)
					{
						userTitle.Attributes["title"] = Translator.Translate(Define.DefaultCulture, "人员信息有误") + "." +
							Translator.Translate(Define.DefaultCulture, "请联系管理员调整流程");
					}

					container.Controls.Add(userTitle);
				}

				HtmlGenericControl userName = new HtmlGenericControl("div");
				userName.Attributes["class"] = "opName";

				if (this.EnableUserPresence)
				{
					UserPresence presence = new UserPresence();

					presence.UserID = user.ID;
					presence.UserDisplayName = user.DisplayName;

					userName.Controls.Add(presence);
				}
				else
					userName.InnerText = user.DisplayName;

				container.Controls.Add(userName);
			}
		}
Beispiel #17
0
        private void RenderActivityUsers(IEnumerable <IUser> users, IWfMainStreamActivityDescriptor msActivity, Control container)
        {
            foreach (IUser user in users)
            {
                bool showUserInfo = false;

                if (TitleShowMode == UserTitleShowMode.ShowActivityNameAndTitle)
                {
                    showUserInfo = true;
                }
                else
                {
                    if (TitleShowMode == UserTitleShowMode.ShowUserTitleWhenActivityNameEmpty)
                    {
                        showUserInfo = string.IsNullOrEmpty(msActivity.Activity.Name);
                    }
                }

                if (showUserInfo)
                {
                    HtmlGenericControl userTitle = new HtmlGenericControl("div");

                    try
                    {
                        string titleText = string.Empty;

                        string deptName = string.Empty;

                        if ((TitleShowMode & UserTitleShowMode.ShowDepartmentName) != UserTitleShowMode.None)
                        {
                            deptName = GetUserDepartmentName(user);
                        }

                        if (string.IsNullOrEmpty(user.Occupation))
                        {
                            titleText = deptName;
                        }
                        else
                        {
                            titleText = deptName.IsNotEmpty() ? deptName + "/" + user.Occupation : user.Occupation;
                        }

                        userTitle.InnerText = titleText;

                        if ((int)user.Properties.GetValue("STATUS", 1) != 1)
                        {
                            userTitle.Attributes["title"] = string.Format("{0} {1}",
                                                                          titleText,
                                                                          Translator.Translate(Define.DefaultCulture, "帐号已注销") + ". " +
                                                                          Translator.Translate(Define.DefaultCulture, "请联系管理员调整流程"));
                        }
                        else
                        {
                            userTitle.Attributes["class"] = "opDept";
                        }
                    }
                    catch (System.Exception)
                    {
                        userTitle.Attributes["title"] = Translator.Translate(Define.DefaultCulture, "人员信息有误") + "." +
                                                        Translator.Translate(Define.DefaultCulture, "请联系管理员调整流程");
                    }

                    container.Controls.Add(userTitle);
                }

                HtmlGenericControl userName = new HtmlGenericControl("div");
                userName.Attributes["class"] = "opName";

                if (this.EnableUserPresence)
                {
                    UserPresence presence = new UserPresence();

                    presence.UserID          = user.ID;
                    presence.UserDisplayName = user.DisplayName;

                    userName.Controls.Add(presence);
                }
                else
                {
                    userName.InnerText = user.DisplayName;
                }

                container.Controls.Add(userName);
            }
        }
		private string GetActivityTooltipText(IWfMainStreamActivityDescriptor mainStreamActivity)
		{
			IWfActivity wfActivity = mainStreamActivity.Activity.ProcessInstance.Activities.
				FindActivityByDescriptorKey(mainStreamActivity.Activity.Key);

			return GetActivityPeopleNameDisplayText(wfActivity, mainStreamActivity);
		}
Beispiel #19
0
        private static void FillStatusAndAssignees(WfClientMainStreamActivityDescriptor client, IWfMainStreamActivityDescriptor server)
        {
            IWfActivity actInstance = server.Activity.ProcessInstance.Activities.
                                      FindActivityByDescriptorKey(server.Activity.Key);

            if (actInstance != null)
            {
                client.Status                   = actInstance.Status.ToClientActivityStatus();
                client.Elapsed                  = server.Elapsed;
                client.ActivityInstanceID       = actInstance.ID;
                client.Operator                 = (WfClientUser)actInstance.Operator.ToClientOguObject();
                client.BranchProcessGroupsCount = actInstance.BranchProcessGroups.Count;

                client.FromTransitionDescriptor = ConvertServerTransitionToClient(actInstance.FromTransitionDescriptor);
                client.ToTransitionDescriptor   = ConvertServerTransitionToClient(actInstance.ToTransitionDescriptor);

                if (actInstance.Assignees.Count != 0)
                {
                    WfClientAssigneeCollectionConverter.Instance.ServerToClient(actInstance.Assignees, client.Assignees);
                }
                else
                {
                    WfAssigneeCollection candidates = actInstance.Candidates.GetSelectedAssignees();

                    WfClientAssigneeCollectionConverter.Instance.ServerToClient(candidates, client.Assignees);
                }
            }
        }
		private Control GetActivityDisplayControl(IWfMainStreamActivityDescriptor mainStreamActivity)
		{
			Control result = null;

			IWfActivity wfActivity = mainStreamActivity.Activity.ProcessInstance.Activities.
				FindActivityByDescriptorKey(mainStreamActivity.Activity.Key);

			if (NeedToShowActivityName(mainStreamActivity.Activity))
				result = new LiteralControl(HttpUtility.HtmlEncode(mainStreamActivity.Activity.Name));
			else
				result = GetActivityPeopleNameDisplayControl(wfActivity, mainStreamActivity);

			return result;
		}