Example #1
0
        /// <summary>
        /// Retrive params from client request
        ///
        /// </summary>
        /// <param name="requestData">The dictinary with client request parameters</param>
        /// <param name="reqDefinitions">The typed parameter container</param>
        public static UserRequestParams RetriveQueryParam(IQueryCollection requestData, Dictionary <string, RequestParamName> reqDefinitions)
        {
            var  result     = new UserRequestParams();
            uint pageNumber = 0;
            uint pageSize   = 0;

            if (requestData.ContainsKey(reqDefinitions["page"].UserDefinedValue))
            {
                UInt32.TryParse(requestData[reqDefinitions["page"].UserDefinedValue], out pageNumber);
                result.pageNumber = pageNumber;
            }
            if (requestData.ContainsKey(reqDefinitions["size"].UserDefinedValue))
            {
                UInt32.TryParse(requestData[reqDefinitions["size"].UserDefinedValue], out pageSize);
                result.pageSize = pageSize;
            }
            if (requestData.ContainsKey(reqDefinitions["filter"].UserDefinedValue))
            {
                result.filter = requestData[reqDefinitions["filter"].UserDefinedValue];
            }
            if (requestData.ContainsKey(reqDefinitions["sort"].UserDefinedValue))
            {
                result.sort = requestData[reqDefinitions["sort"].UserDefinedValue];
            }
            if (requestData.ContainsKey(reqDefinitions["sortdirection"].UserDefinedValue))
            {
                result.sortDirection = requestData[reqDefinitions["sortdirection"].UserDefinedValue];
            }
            return(result);
        }
Example #2
0
 private static IEnumerable<TE> GetDBQueryResult<T, TE>(T dbcontext, UserRequestParams QueryParams) where T : DbContext, IDisposable
                                                                                                   where TE : class
 {
     IEnumerable<TE> queryResult;
     int skip = (int)((QueryParams.pageNumber - 1) * QueryParams.pageSize);
     if (QueryParams.pageSize == 0)
     {
         if (!String.IsNullOrWhiteSpace(QueryParams.sort) && typeof(TE).GetProperty(QueryParams.sort) != null)
         {
             if (!String.IsNullOrWhiteSpace(QueryParams.sortDirection))
             {
                 queryResult = dbcontext.Set<TE>().AsNoTracking().Where(QueryParams.filter).OrderByDescending(QueryParams.sort).ToList<TE>();
             }
             else
             {
                 queryResult = dbcontext.Set<TE>().AsNoTracking().Where(QueryParams.filter).OrderBy(QueryParams.sort).ToList<TE>();
             }
         }
         else
         {
             queryResult = dbcontext.Set<TE>().AsNoTracking().Where(QueryParams.filter).ToList<TE>();
         }
     }
     else
     {
         if (!String.IsNullOrWhiteSpace(QueryParams.sort) && typeof(TE).GetProperty(QueryParams.sort) != null)
         {
             if (!String.IsNullOrWhiteSpace(QueryParams.sortDirection))
             {
                 queryResult = dbcontext.Set<TE>().AsNoTracking().Where(QueryParams.filter).OrderByDescending(QueryParams.sort).Skip(skip).Take((int)QueryParams.pageSize).ToList<TE>();
             }
             else
             {
                 queryResult = dbcontext.Set<TE>().AsNoTracking().Where(QueryParams.filter).OrderBy(QueryParams.sort).Skip(skip).Take((int)QueryParams.pageSize).ToList<TE>();
             }
         }
         else
         {
             queryResult = dbcontext.Set<TE>().AsNoTracking().Where(QueryParams.filter).Skip(skip).Take((int)QueryParams.pageSize).ToList<TE>();
         }
     }
     return queryResult;
 }