Beispiel #1
0
        /// <summary>
        /// Gets a querable collection of type "E" with the specified parameters.
        /// </summary>
        /// <typeparam name="E">Entity type contained in class.</typeparam>
        /// <param name="request">Request with the specified parameters.</param>
        /// <param name="input">This is the input to apply the query.</param>
        /// <returns></returns>
        public static IQueryable <E> GetData <E>(this IQueryable <E> input, QueryParameters request)
        //where E : class, new()
        {
            var filterParameters = FilterParameters.GetFilterExpression <E>(request.FilterCollection);
            var result           = input.GetData <E>(filterParameters.FilterExpression, string.Join(' ', request.SortingNames), request.PageIndex, request.RecordsCount, filterParameters.Parameters);

            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// Gets the response for a query.
        /// </summary>
        /// <typeparam name="E">Entity type.</typeparam>
        /// <param name="input">Query input.</param>
        /// <param name="request">Request.</param>
        /// <returns></returns>
        public static RecordResult GetResponse <E>(this IQueryable <E> input, QueryParameters request)
        {
            var filterParameters = FilterParameters.GetFilterExpression <E>(request.FilterCollection);
            var queryResult      = input.GetData <E>(filterParameters.FilterExpression, string.Join(' ', request.SortingNames), request.PageIndex, request.RecordsCount, filterParameters.Parameters);

            var totalRecordsCount = input.GetCounter <E>(filterParameters.FilterExpression, filterParameters.Parameters);
            var result            = new RecordResult()
            {
                PageIndex         = request.PageIndex,
                TotalPagesCount   = (int)System.Math.Ceiling((float)totalRecordsCount / (float)request.RecordsCount),
                TotalRecordsCount = totalRecordsCount,
                Records           = queryResult.Cast <object>().ToList()
            };

            return(result);
        }