/// <summary>
        /// Gets the page widgets.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>
        /// Widget list.
        /// </returns>
        /// <exception cref="CmsApiException">Failed to get widgets.</exception>
        public DataListResponse <Widget> GetPageWidgets(GetPageWidgetsRequest request)
        {
            try
            {
                var query = Repository
                            .AsQueryable <Widget>()
                            .Where(w => w.PageContents != null && w.PageContents.Any(c => c.Page.Id == request.PageId))
                            .ApplyFilters(request);

                var totalCount = query.ToRowCountFutureValue(request);

                query = query.AddOrderAndPaging(request);

                return(query.ToDataListResponse(totalCount));
            }
            catch (Exception inner)
            {
                var message = string.Format("Failed to get page widgets.");
                Logger.Error(message, inner);
                throw new CmsApiException(message, inner);
            }
        }
        /// <summary>
        /// Gets the page widgets.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>
        /// Widget list.
        /// </returns>
        /// <exception cref="CmsApiException">Failed to get widgets.</exception>
        public DataListResponse<Widget> GetPageWidgets(GetPageWidgetsRequest request)
        {
            try
            {
                var query = Repository
                    .AsQueryable<Widget>()
                    .Where(w => w.PageContents != null && w.PageContents.Any(c => c.Page.Id == request.PageId))
                    .ApplyFilters(request);

                var totalCount = query.ToRowCountFutureValue(request);

                query = query.AddOrderAndPaging(request);

                return query.ToDataListResponse(totalCount);
            }
            catch (Exception inner)
            {
                var message = string.Format("Failed to get page widgets.");
                Logger.Error(message, inner);
                throw new CmsApiException(message, inner);
            }
        }