Exemple #1
0
        /// <summary>
        /// The ok list.
        /// </summary>
        /// <param name="list">
        /// The list.
        /// </param>
        /// <param name="firstPageUri">
        /// The first page uri.
        /// </param>
        /// <param name="previousPageUri">
        /// The previous page uri.
        /// </param>
        /// <param name="nextPageUri">
        /// The next page uri.
        /// </param>
        /// <param name="lastPageUri">
        /// The last page uri.
        /// </param>
        /// <param name="currentPageIndex">
        /// The current page index.
        /// </param>
        /// <param name="pageCount">
        /// The page count.
        /// </param>
        /// <typeparam name="T">
        /// The content type
        /// </typeparam>
        /// <returns>
        /// The OkNegotiatedIListContentResult
        /// </returns>
        protected internal virtual OkNegotiatedIListContentResult <IList <T>, T> OkList <T>(IList <T> list, Uri firstPageUri, Uri previousPageUri, Uri nextPageUri, Uri lastPageUri, int currentPageIndex, int pageCount)
        {
            // Create the response
            var response = new OkNegotiatedIListContentResult <IList <T>, T>(list, this, firstPageUri, previousPageUri, nextPageUri, lastPageUri, currentPageIndex, pageCount);

            return(response);
        }
Exemple #2
0
        /// <summary>
        /// The ok list.
        /// </summary>
        /// <param name="list">
        /// The list.
        /// </param>
        /// <param name="actionBaseUri">
        /// The action base uri.
        /// </param>
        /// <param name="currentPageIndex">
        /// The current page index.
        /// </param>
        /// <param name="pageSize">
        /// The page size.
        /// </param>
        /// <typeparam name="T">
        /// The content type.
        /// </typeparam>
        /// <returns>
        /// The OkNegotiatedIListContentResult.
        /// </returns>
        protected internal virtual OkNegotiatedIListContentResult <IList <T>, T> OkList <T>(IList <T> list, Uri actionBaseUri, int currentPageIndex, int pageSize) where T : class
        {
            // Work out the index of our last page
            var pagesCount = list.Count / pageSize;

            // Set the Uri
            var actionBaseUriString = actionBaseUri.ToString();

            if (!actionBaseUriString.EndsWith("/"))
            {
                actionBaseUriString += "/";
            }

            // Calculate the Uris
            var firstPageUri    = new Uri(string.Format("{0}?page=1&per_page={1}", actionBaseUriString, pageSize));
            var previousPageUri = new Uri(string.Format("{0}?page={1}&per_page={2}", actionBaseUriString, currentPageIndex > 1 ? (currentPageIndex - 1) : 1, pageSize));
            var nextPageUri     = new Uri(string.Format("{0}?page={1}&per_page={2}", actionBaseUriString, currentPageIndex + 1, pageSize));
            var lastPageUri     = new Uri(actionBaseUri, string.Format("{0}?page={1}&per_page={2}", actionBaseUriString, pagesCount > 0 ? pagesCount : 1, pageSize));

            // Calculate the skip
            var skip = (pageSize * currentPageIndex) - pageSize;

            // Create the return list
            var returnList = list.Skip(skip).Take(pageSize).ToList();

            // Create the response
            var response = new OkNegotiatedIListContentResult <IList <T>, T>(returnList, this, firstPageUri, previousPageUri, nextPageUri, lastPageUri, currentPageIndex, pagesCount);

            return(response);
        }