Пример #1
0
		public async Task<ActionResult> ClaimThread(int threadId, int pageNo)
		{
			var (result, thread) = await PerformSecurityCheckAsync(threadId);
			if(result != null)
			{
				return result;
			}

			await SupportQueueManager.ClaimThreadAsync(this.HttpContext.Session.GetUserID(), threadId);
			return RedirectToAction("Index", "Thread", new {threadId = threadId, pageNo = pageNo});
		}
Пример #2
0
        public async Task <ActionResult> UpdateQueues(string threadClaimButton)
        {
            if (!this.HttpContext.Session.HasSystemActionRight(ActionRights.QueueContentManagement))
            {
                return(RedirectToAction("Index", "Home"));
            }

            var buttonIdClicked = threadClaimButton ?? string.Empty;

            if (string.IsNullOrWhiteSpace(buttonIdClicked))
            {
                return(RedirectToAction("Index", "Home"));
            }

            var idFragments = buttonIdClicked.Split('_');

            if (idFragments.Length != 2)
            {
                return(RedirectToAction("Index", "Home"));
            }

            var threadId = 0;

            if (!Int32.TryParse(idFragments[1], out threadId))
            {
                return(RedirectToAction("Index", "Home"));
            }

            var(result, thread) = await PerformSecurityCheckAsync(threadId);

            if (result != null)
            {
                return(result);
            }

            switch (idFragments[0])
            {
            case "releaseButton":
                await SupportQueueManager.ReleaseClaimOnThreadAsync(threadId);

                break;

            case "claimButton":
                await SupportQueueManager.ClaimThreadAsync(this.HttpContext.Session.GetUserID(), threadId);

                break;

            default:
                return(RedirectToAction("Index", "Home"));
            }

            // it's either claim or release, go back to the original view for all queues
            return(RedirectToAction("ListQueues", "SupportQueue"));
        }