private void InitializeWorkQueueSelection()
        {
            // PRE-CACHE WORK QUEUES THROUGH WORK QUEUES AVAILABLE

            // PRE-CACHE WORKFLOWS THROUGH WORKFLOWS AVAILABLE

            MercuryApplication.WorkQueuesAvailable(true);

            MercuryApplication.WorkflowsAvailable(true);


            WorkQueueSelection.Items.Clear();


            foreach (Int64 currentWorkQueueId in MercuryApplication.Session.WorkQueuePermissions.Keys)
            {
                Client.Core.Work.WorkQueue currentWorkQueue = MercuryApplication.WorkQueueGet(currentWorkQueueId, true);

                if (currentWorkQueue != null)
                {
                    if ((currentWorkQueue.Enabled) && (currentWorkQueue.Visible))
                    {
                        WorkQueueSelection.Items.Add(new Telerik.Web.UI.RadComboBoxItem(currentWorkQueue.Name, currentWorkQueue.Id.ToString()));
                    }
                }
            }

            WorkQueueSelection.SelectedValue = SelectedWorkQueueId.ToString();

            InitializeMyWorkQueuesForSelection(SelectedWorkQueueId);

            return;
        }
        protected void InitializeRoutingRulesGrid()
        {
            System.Data.DataTable ruleTable = new System.Data.DataTable();

            ruleTable.Columns.Add("Sequence");

            ruleTable.Columns.Add("Rule");

            ruleTable.Columns.Add("WorkQueue");


            foreach (Int32 currentRuleSequence in routingRule.Rules.Keys)
            {
                Client.Core.Work.WorkQueue workQueue = MercuryApplication.WorkQueueGet(routingRule.Rules[currentRuleSequence].WorkQueueId, true);

                ruleTable.Rows.Add(

                    routingRule.Rules[currentRuleSequence].Sequence,

                    routingRule.Rules[currentRuleSequence].Description,

                    (workQueue != null) ? workQueue.Name : "Not Assigned"

                    );
            }

            RoutingRulesGrid.DataSource = ruleTable;

            RoutingRulesGrid.DataBind();

            return;
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (MercuryApplication == null)
            {
                return;
            }


            if (!IsPostBack)
            {
                // IF FIRST REQUEST, READ FROM QUERY STRING

                Int64 selectedWorkQueueId = 0;

                Int64.TryParse(Convert.ToString(Request.QueryString["WorkQueueId"]), out selectedWorkQueueId);

                WorkQueueSelected = MercuryApplication.WorkQueueGet(selectedWorkQueueId, true);


                // LOAD QUEUE SUMMARY

                WorkQueueMonitorSummaryGrid.DataSource = MercuryApplication.WorkQueueMonitorSummary();

                InitializeWorkQueueAgingChart();
            }

            else
            {
                // FORCE CLIENT-SIDE REPAINT AFTER AJAX CONTROL UPDATES

                Master.TelerikAjaxManagerControl.ResponseScripts.Add("WorkQueueMonitor_OnPaint ();");
            }

            return;
        }
        protected void WorkQueueMonitorSummaryGrid_OnSelectedIndexChanged(Object sender, EventArgs e)
        {
            if (WorkQueueMonitorSummaryGrid.SelectedItems.Count == 0)
            {
                return;
            }

            Telerik.Web.UI.GridDataItem dataItem = (Telerik.Web.UI.GridDataItem)WorkQueueMonitorSummaryGrid.SelectedItems[0];


            Int64 selectedWorkQueueId = Convert.ToInt64(dataItem.GetDataKeyValue("Id"));

            WorkQueueSelected = MercuryApplication.WorkQueueGet(selectedWorkQueueId, true);


            // LOAD QUEUE SUMMARY

            WorkQueueMonitorSummaryGrid.DataSource = MercuryApplication.WorkQueueMonitorSummary();

            InitializeWorkQueueAgingChart();

            return;
        }
예제 #5
0
        protected void RenderInformation()
        {
            Client.Session session = MercuryApplication.Session;

            Page.Title = session.UserDisplayName + " [" + session.UserAccountId + " : " + session.UserAccountName + "]";


            DebugWriteLine("Security Authority: " + session.SecurityAuthorityName + " (" + session.SecurityAuthorityId.ToString() + ")");

            DebugWriteLine("User: "******" [" + session.UserAccountId + " : " + session.UserAccountName + "]");

            DebugWriteLine("Environment Name: " + session.EnvironmentName);

            DebugWriteLine(String.Empty);

            DebugWriteLine("Client Version: " + MercuryApplication.VersionClient);

            DebugWriteLine("Server Version: " + MercuryApplication.VersionServer);

            DebugWriteLine(String.Empty);

            DebugWriteLine("Enterprise Permissions: ");

            foreach (String currentPermission in session.EnterprisePermissionSet.Keys)
            {
                DebugWriteLine(currentPermission);
            }

            DebugWriteLine(String.Empty);

            DebugWriteLine("Environment Permissions: ");

            foreach (String currentPermission in session.EnvironmentPermissionSet.Keys)
            {
                DebugWriteLine(currentPermission);
            }

            DebugWriteLine(String.Empty);

            DebugWriteLine("Work Teams: ");



            foreach (Client.Core.Work.WorkTeam currentWorkTeam in MercuryApplication.WorkTeamsForSession(false))
            {
                DebugWriteLine(currentWorkTeam.Name);
            }


            DebugWriteLine(String.Empty);

            DebugWriteLine("Work Queues: ");

            foreach (Int64 currentWorkQueueId in MercuryApplication.Session.WorkQueuePermissions.Keys)
            {
                Client.Core.Work.WorkQueue currentWorkQueue = MercuryApplication.WorkQueueGet(currentWorkQueueId, false);

                DebugWriteLine(currentWorkQueue.Name + " (" + MercuryApplication.Session.WorkQueuePermissions[currentWorkQueueId].ToString() + ")");
            }



            DebugWriteLine(String.Empty);

            DebugWriteLine("Role Membership: ");

            foreach (String currentMembership in session.RoleMembership)
            {
                DebugWriteLine(currentMembership);
            }

            DebugWriteLine(String.Empty);

            DebugWriteLine("Security Group Membership: ");

            foreach (String currentMembership in session.GroupMembership)
            {
                DebugWriteLine(currentMembership);
            }

            DebugWriteLine(String.Empty);

            if (MercuryApplication.LastException != null)
            {
                Exception lastException = MercuryApplication.LastException;

                if (lastException != null)
                {
                    DebugWriteLine("Client.Application [" + lastException.Source + "] " + lastException.Message);

                    if (lastException.InnerException != null)
                    {
                        DebugWriteLine("Client.Application [" + lastException.InnerException.Source + "] " + lastException.InnerException.Message);
                    }

                    DebugWriteLine("** Stack Trace **");

                    System.Diagnostics.StackTrace debugStack = new System.Diagnostics.StackTrace();

                    foreach (System.Diagnostics.StackFrame currentStackFrame in debugStack.GetFrames())
                    {
                        DebugWriteLine("    [" + currentStackFrame.GetMethod().Module.Assembly.FullName + "] " + currentStackFrame.GetMethod().Name);
                    }
                } // if (lastException != null)
            }


            return;
        }
예제 #6
0
        protected void MemberWorkHistoryGrid_OnItemDataBound(Object sender, Telerik.Web.UI.GridItemEventArgs eventArgs)
        {
            String anchorText;

            String parameterString = String.Empty;


            if (eventArgs.Item is Telerik.Web.UI.GridDataItem)
            {
                Telerik.Web.UI.GridDataItem gridItem = (Telerik.Web.UI.GridDataItem)eventArgs.Item;

                if (gridItem.OwnerTableView.Name != "MemberWorkHistoryMasterView")
                {
                    return;
                }


                Client.Core.Work.WorkQueueItem workQueueItem = null;

                Int64 workQueueItemId = Convert.ToInt64(gridItem["WorkQueueItemId"].Text);

                foreach (Client.Core.Work.WorkQueueItem currentWorkQueueItem in WorkQueueItems)
                {
                    if (currentWorkQueueItem.Id == workQueueItemId)
                    {
                        workQueueItem = currentWorkQueueItem;

                        break;
                    }
                }

                if (workQueueItem == null)
                {
                    workQueueItem = MercuryApplication.WorkQueueItemGet(workQueueItemId);
                }


                String statusImage = String.Empty;


                if (!workQueueItem.CompletionDate.HasValue)
                {
                    if (workQueueItem.MilestoneDate <= DateTime.Today)
                    {
                        statusImage = "Warn.png";
                    }

                    if (workQueueItem.ThresholdDate <= DateTime.Today)
                    {
                        statusImage = "Warn.png";
                    }

                    if (workQueueItem.DueDate <= DateTime.Today)
                    {
                        statusImage = "Stop.png";
                    }
                }

                else
                {
                    statusImage = "Ok.png";
                }

                if (!String.IsNullOrEmpty(statusImage))
                {
                    statusImage = "/Images/Common16/" + statusImage;

                    anchorText = "<img src=\"" + statusImage + "\" alt=\"Status\" style=\"padding: 2px;\" />";

                    gridItem["WorkQueueItemStatus"].Text = anchorText;
                }

                Client.Core.Work.WorkQueue workQueue = MercuryApplication.WorkQueueGet(Convert.ToInt64(gridItem["WorkQueueId"].Text), true);

                if (workQueue == null)
                {
                    workQueue = MercuryApplication.WorkQueueGet(Convert.ToInt64(gridItem["WorkQueueId"].Text), false);
                }

                if (workQueue != null)
                {
                    // DETAILS COLUMN

                    if (AllowUserInteraction)
                    {
                        parameterString = " <a href=\"/Application/Work/WorkQueueItemDetail.aspx?WorkQueueItemId=" + workQueueItem.Id.ToString() + "\" target=\"_blank\">(details)</a>";

                        gridItem["WorkQueueItemStatus"].Text = gridItem["WorkQueueItemStatus"].Text + parameterString;
                    }

                    // ACTION COLUMN

                    if ((workQueueItem != null) && (AllowUserInteraction))
                    {
                        #region Assign/Work To Column

                        anchorText = gridItem["AssignedTo"].Text;

                        if ((!workQueueItem.CompletionDate.HasValue) && (workQueueItem.WorkQueue.WorkflowId != 0))
                        {
                            // SELF-ASSIGN (IF NO MANAGE PERMISSION)

                            //if ((workQueue.HasSelfAssignPermission) && !((workQueueItem.AssignedToSecurityAuthorityId == MercuryApplication.Session.AuthorityId) && (workQueueItem.AssignedToUserAccountId == MercuryApplication.Session.UserAccountId))) {

                            if ((workQueue.WorkflowId != 0) && ((MercuryApplication.SessionWorkQueueHasSelfAssignPermission(workQueue.Id)) || (MercuryApplication.SessionWorkQueueHasManagePermission(workQueue.Id)))

                                || ((workQueueItem.AssignedToSecurityAuthorityId == MercuryApplication.Session.SecurityAuthorityId) && (workQueueItem.AssignedToUserAccountId == MercuryApplication.Session.UserAccountId)))
                            {
                                parameterString = String.Empty;

                                parameterString = parameterString + "/Application/Workflow/Workflow.aspx";

                                if (workQueueItem.WorkflowInstanceId == Guid.Empty)
                                {
                                    parameterString = parameterString + "?WorkflowId=" + workQueue.WorkflowId.ToString();

                                    parameterString = parameterString + "&WorkQueueItemId=" + workQueueItem.Id.ToString();

                                    parameterString = parameterString + "&" + workQueueItem.ItemObjectType + "Id=" + workQueueItem.ItemObjectId.ToString();

                                    parameterString = parameterString + "&Source=MemberProfile";


                                    anchorText = anchorText + " <a href=\"" + parameterString + "\">(work)</a>";
                                }

                                else
                                {
                                    parameterString = parameterString + "?WorkflowId=" + workQueue.WorkflowId.ToString();

                                    parameterString = parameterString + "&WorkflowInstanceId=" + workQueueItem.WorkflowInstanceId.ToString();

                                    parameterString = parameterString + "&Source=MemberProfile";

                                    anchorText = anchorText + " <a href=\"" + parameterString + "\">(work - resume)</a>";
                                }
                            }


                            //        // RELEASE ASSIGNMENT (EITHER SELF ASSIGNED OR MANAGE)

                            //        else if (!(workQueue.HasManagePermission) && ((workQueueItem.AssignedToSecurityAuthorityId == MercuryApplication.Session.AuthorityId) && (workQueueItem.AssignedToUserAccountId == MercuryApplication.Session.UserAccountId))) {

                            //            parameterString = String.Empty;

                            //            parameterString = parameterString + workQueueItem.WorkQueueItemId.ToString () + ", "; // WORK QUEUE ITEM ID

                            //            parameterString = parameterString + "'" + anchorText.Replace ("'", "''") + "', "; // CURRENT ASSIGNMENT

                            //            parameterString = parameterString + "'0', "; // SECURITY AUTHORITY ID

                            //            parameterString = parameterString + "'', "; // USER ACCOUNT ID

                            //            parameterString = parameterString + "'** Not Assigned'"; // USER ACCOUNT ID

                            //            anchorText = anchorText + " <a href=\"javascript:MyWorkQueues_WorkQueueItem_OnAssignItem_" + WorkQueueAction_WorkQueueItemId.ClientID.Replace ('.', '_') + " (" + parameterString + ")\">(release)</a>";

                            //        }

                            //        // CHANGE ASSIGNMENT (MANAGE)

                            //        else if (workQueue.HasManagePermission) {

                            //            parameterString = String.Empty;

                            //            parameterString = parameterString + workQueueItem.WorkQueueItemId.ToString () + ", "; // WORK QUEUE ITEM ID

                            //            parameterString = parameterString + "'" + workQueueItem.ObjectType + ": " + workQueueItem.ItemDescription.Replace ("'", "''") + "', ";

                            //            parameterString = parameterString + "'" + workQueueItem.AssignedToSecurityAuthorityId.ToString () + "|" + workQueueItem.AssignedToUserAccountId + "'";

                            //            anchorText = anchorText + " <a href=\"javascript:MyWorkQueues_WorkQueueItem_OnChangeAssignment_" + WorkQueueAction_WorkQueueItemId.ClientID.Replace ('.', '_') + " (" + parameterString + ")\">(change)</a>";

                            //        }

                            gridItem["AssignedTo"].Text = anchorText;
                        }

                        #endregion


                        #region Completed Workflow Steps Column

                        String completedAnchor = gridItem["CompletionDate"].Text;


                        if (workQueueItem.CompletionDate.HasValue)
                        {
                        }


                        gridItem["CompletionDate"].Text = completedAnchor;

                        #endregion
                    }
                }
            }

            return;
        }
예제 #7
0
        protected void WorkflowNextItemButton_OnClick(Object sender, EventArgs e)
        {
            if (MercuryApplication == null)
            {
                return;
            }

            String alertMessage = String.Empty;


            Client.Core.Work.WorkQueue workQueue = MercuryApplication.WorkQueueGetByWorkQueueItem(WorkflowResponse.WorkQueueItemId);

            if (workQueue == null)
            {
                TelerikAjaxManager.ResponseScripts.Add("alert ('Get Next Work Queue Item is not Available in this Context (No Work Queue Found).');");

                WorkflowNextItemContainer.Style.Add("display", "none");
            }

            else
            {
                Mercury.Server.Application.GetWorkResponse response;

                response = MercuryApplication.WorkQueueGetWork(workQueue.Id);


                if (response.HasException)
                {
                    // EXCEPTION OCCURRED WHILE GETTING WORK QUEUE ITEM

                    alertMessage = "[" + response.Exception.Source + "] " + response.Exception.Message;

                    alertMessage.Replace("'", "");


                    TelerikAjaxManager.ResponseScripts.Add("alert ('" + alertMessage + "');");

                    WorkflowNextItemContainer.Style.Add("display", "none");


                    MercuryApplication.SetLastException(response.Exception);
                }

                else if (response.WorkQueueItem == null)
                {
                    // NO WORK QUEUE ITEM AVAILABLE

                    alertMessage = "No Work Queue Items Available in the selected Work Queue.";

                    alertMessage.Replace("'", "");


                    TelerikAjaxManager.ResponseScripts.Add("alert ('" + alertMessage + "');");

                    WorkflowNextItemContainer.Style.Add("display", "none");
                }

                else
                {
                    // VALID WORK QUEUE ITEM FOUND AND RETURNED

                    if (response.Workflow != null)
                    {
                        // KICK-OFF WORKFLOW PROCESS

                        String parameterString = String.Empty;

                        parameterString = parameterString + "?WorkflowId=" + workQueue.WorkflowId.ToString();

                        parameterString = parameterString + "&WorkQueueItemId=" + response.WorkQueueItem.Id.ToString();

                        parameterString = parameterString + "&" + response.WorkQueueItem.ItemObjectType + "Id=" + response.WorkQueueItem.ItemObjectId.ToString();

                        parameterString = parameterString + "&ReferrerUrlSessionCachePrefix=" + SessionCachePrefix;


                        if (response.WorkQueueItem.WorkflowInstanceId != Guid.Empty)
                        {
                            parameterString = parameterString + "&WorkflowInstanceId=" + response.WorkQueueItem.WorkflowInstanceId.ToString();
                        }

                        Response.RedirectLocation = "/Application/Workflow/Workflow.aspx" + parameterString;
                    }

                    else   // MANUAL WORKFLOW, JUST HARD REFRESH

                    {
                        alertMessage = "Manual Workflow, unable to continue.";

                        alertMessage.Replace("'", "");


                        TelerikAjaxManager.ResponseScripts.Add("alert ('" + alertMessage + "');");

                        WorkflowNextItemContainer.Style.Add("display", "none");
                    }
                }
            }

            return;
        }