/// <summary> /// Calculates the redirect to message with the id specified. This is a response to the index action on the thread controller, with the proper page and '#' id redirect. /// </summary> /// <param name="threadId">The thread identifier.</param> /// <param name="messageId">The message identifier.</param> /// <returns></returns> private async Task <ActionResult> CalculateRedirectToMessageAsync(int threadId, int messageId) { var maxAmountMessagesPerPage = this.HttpContext.Session.GetUserDefaultNumberOfMessagesPerPage(); var idOfStartMessage = await ThreadGuiHelper.GetStartAtMessageForGivenMessageAndThreadAsync(threadId, messageId, maxAmountMessagesPerPage); int startAtMessageNo = messageId > 0 ? idOfStartMessage : 0; int currentPageNo = (startAtMessageNo / maxAmountMessagesPerPage) + 1; return(Redirect(this.Url.Action("Index", "Thread", new { threadId = threadId, pageNo = currentPageNo }) + "#" + messageId)); }