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; }
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; }
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; }
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; }