예제 #1
0
        /// <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));
        }