예제 #1
0
 /// <summary>
 /// 排序
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="query"></param>
 /// <param name="ordering">排序字符串,如:OrderBy("id desc,name ase")</param>
 /// <param name="values"></param>
 /// <returns></returns>
 public static IQueryable <T> OrderBy <T>(this IQueryable <T> query, string ordering, params object[] values)
 {
     if (query == null)
     {
         throw new ArgumentNullException("query");
     }
     return(DynamicQueryableExtensions.OrderBy(query, ordering, values));
 }
예제 #2
0
        public List <TEntity> FindList(IQueryable <TEntity> query, DataBase.Pagination pag)
        {
            pag.Total = query.Count();

            string OrderBys = DataBase.OrderByJoin(pag.SortName, pag.SortOrder, false);

            query = DynamicQueryableExtensions.OrderBy(query, OrderBys);

            query = query.Skip((pag.PageNumber - 1) * pag.PageSize).Take(pag.PageSize);

            return(query.ToList());
        }
예제 #3
0
        public List <TEntity> FindList(Expression <Func <TEntity, bool> > pWhere, DataBase.Pagination pag)
        {
            var query = dbSet.AsNoTracking().Where(pWhere);

            pag.Total = query.Count();

            string OrderBys = DataBase.OrderByJoin(pag.SortName, pag.SortOrder, false);

            query = DynamicQueryableExtensions.OrderBy(query, OrderBys);

            query = query.Skip((pag.PageNumber - 1) * pag.PageSize).Take(pag.PageSize);

            return(query.ToList());
        }
        private List <Kişi> FiltreOrder(List <Kişi> kisiList, string order, bool desc)
        {
            var quarable = kisiList.AsQueryable();

            if (!desc)
            {
                return(DynamicQueryableExtensions.OrderBy(quarable, order).ToList());
            }

            else
            {
                return(DynamicQueryableExtensions.OrderBy(quarable, order + " desc").ToList());
            }
        }
        public static IOrderedQueryable <TSource> OrderBy <TSource>(this IQueryable <TSource> source, string ordering = null, params object[] args)
            where TSource : class
        {
            if (string.IsNullOrEmpty(ordering))
            {
                source = OrderByAttributes(source);
            }
            else
            {
                source = DynamicQueryableExtensions.OrderBy(source, ordering, args);
            }

            return((IOrderedQueryable <TSource>)source);
        }
예제 #6
0
        public void OrderBy_Dynamic_Exceptions()
        {
            //Arrange
            var testList = User.GenerateSampleModels(100, allowNullableProfiles: true);
            var qry      = testList.AsQueryable();

            //Act
            Assert.Throws <ParseException>(() => qry.OrderBy("Bad=3"));
            Assert.Throws <ParseException>(() => qry.Where("Id=123"));

            Assert.Throws <ArgumentNullException>(() => DynamicQueryableExtensions.OrderBy(null, "Id"));
            Assert.Throws <ArgumentNullException>(() => qry.OrderBy(null));
            Assert.Throws <ArgumentException>(() => qry.OrderBy(""));
            Assert.Throws <ArgumentException>(() => qry.OrderBy(" "));
        }
        private static IQueryable <TSource> OrderByAttributes <TSource>(IQueryable <TSource> source)
            where TSource : class
        {
            var sortProperty = typeof(TSource)
                               .GetProperties()
                               .Where(p => p.GetCustomAttribute(typeof(SortAttribute)) != null)
                               .Select(p => new
            {
                PropertyName  = p.Name,
                SortAttribute = (SortAttribute)p.GetCustomAttribute(typeof(SortAttribute))
            })
                               .OrderBy(p => p.SortAttribute.Order)
                               .Select(p => $"{p.PropertyName} {p.SortAttribute.Direction}");

            return(DynamicQueryableExtensions.OrderBy(source, string.Join(",", sortProperty)));
        }
예제 #8
0
 public static IQueryable <T> DyOrderBy <T>(this IQueryable <T> query, string ordering, params object[] values)
 {
     return(!string.IsNullOrEmpty(ordering) ? DynamicQueryableExtensions.OrderBy(query, ordering, values) : query);
 }
예제 #9
0
        public IActionResult LoadCompanyData()
        {
            //IL_0016: Unknown result type (might be due to invalid IL or missing references)
            //IL_001b: Unknown result type (might be due to invalid IL or missing references)
            //IL_002c: Unknown result type (might be due to invalid IL or missing references)
            //IL_004c: Unknown result type (might be due to invalid IL or missing references)
            //IL_006c: Unknown result type (might be due to invalid IL or missing references)
            //IL_009d: Unknown result type (might be due to invalid IL or missing references)
            //IL_00b6: Unknown result type (might be due to invalid IL or missing references)
            //IL_00d7: Unknown result type (might be due to invalid IL or missing references)
            //IL_00f9: Unknown result type (might be due to invalid IL or missing references)
            try
            {
                StringValues         val         = this.Request.Form["draw"];
                string               draw        = ((IEnumerable <string>)(object) this.Request.Form["draw"]).FirstOrDefault();
                string               text        = ((IEnumerable <string>)(object) this.Request.Form["start"]).FirstOrDefault();
                string               text2       = ((IEnumerable <string>)(object) this.Request.Form["length"]).FirstOrDefault();
                string               text3       = ((IEnumerable <string>)(object) this.Request.Form["columns[" + ((IEnumerable <string>)(object) this.Request.Form["order[0][column]"]).FirstOrDefault() + "][name]"]).FirstOrDefault();
                string               text4       = ((IEnumerable <string>)(object) this.Request.Form["order[0][dir]"]).FirstOrDefault();
                string               searchValue = ((IEnumerable <string>)(object) this.Request.Form["search[value]"]).FirstOrDefault();
                int                  count       = (text2 != null) ? Convert.ToInt32(text2) : 0;
                int                  count2      = (text != null) ? Convert.ToInt32(text) : 0;
                int                  num         = 0;
                IQueryable <Company> queryable   = _companyService.GetCompanyQueryable();
                if (!string.IsNullOrEmpty(text3) || !string.IsNullOrEmpty(text4))
                {
                    queryable = DynamicQueryableExtensions.OrderBy <Company>(queryable, text3 + " " + text4, Array.Empty <object>());
                }
                if (!string.IsNullOrEmpty(searchValue))
                {
                    queryable = from m in queryable
                                where m.Name.Contains(searchValue)
                                select m;
                }
                num = queryable.Count();

                //List<Company> data = queryable.Skip(count2).Take(count).ToList();
                var items = queryable.Skip(count2).Take(count).ToList();

                var data = items.Select(a => new {
                    a.Id,
                    a.Name,
                    a.Address,
                    a.CreatedDate

                    ,
                    Demo = string.Equals(a.Demo, "Evet", StringComparison.InvariantCultureIgnoreCase) ? "Evet" : "Hayır"
                    ,
                    CompanyTypeName = _companyTypes.ContainsKey(a.CompanyTypeId) ? _companyTypes[a.CompanyTypeId] : "Diğer"
                }).ToList();

                return(this.Json((object)new
                {
                    draw = draw,
                    recordsFiltered = num,
                    recordsTotal = num,
                    data = data
                }));
            }
            catch (Exception)
            {
                int num2 = 5;
                throw;
            }
        }
        public static IOrderedQueryable <TSource> OrderByInterpolated <TSource>(this IQueryable <TSource> source, FormattableString ordering)
        {
            var orderingStr = ParseFormattableString(ordering, out var args);

            return(DynamicQueryableExtensions.OrderBy(source, orderingStr, args));
        }
        public static IOrderedQueryable OrderByInterpolated(this IQueryable source, FormattableString ordering, IComparer comparer)
        {
            var orderingStr = ParseFormattableString(ordering, out var args);

            return(DynamicQueryableExtensions.OrderBy(source, orderingStr, comparer, args));
        }
예제 #12
0
        public IActionResult LoadPlaceData()
        {
            //IL_0016: Unknown result type (might be due to invalid IL or missing references)
            //IL_001b: Unknown result type (might be due to invalid IL or missing references)
            //IL_002c: Unknown result type (might be due to invalid IL or missing references)
            //IL_004c: Unknown result type (might be due to invalid IL or missing references)
            //IL_006c: Unknown result type (might be due to invalid IL or missing references)
            //IL_009d: Unknown result type (might be due to invalid IL or missing references)
            //IL_00b6: Unknown result type (might be due to invalid IL or missing references)
            //IL_00d7: Unknown result type (might be due to invalid IL or missing references)
            //IL_00f9: Unknown result type (might be due to invalid IL or missing references)
            try
            {
                StringValues       val         = this.Request.Form["draw"];
                string             draw        = ((IEnumerable <string>)(object) this.Request.Form["draw"]).FirstOrDefault();
                string             text        = ((IEnumerable <string>)(object) this.Request.Form["start"]).FirstOrDefault();
                string             text2       = ((IEnumerable <string>)(object) this.Request.Form["length"]).FirstOrDefault();
                string             text3       = ((IEnumerable <string>)(object) this.Request.Form["columns[" + ((IEnumerable <string>)(object) this.Request.Form["order[0][column]"]).FirstOrDefault() + "][name]"]).FirstOrDefault();
                string             text4       = ((IEnumerable <string>)(object) this.Request.Form["order[0][dir]"]).FirstOrDefault();
                string             searchValue = ((IEnumerable <string>)(object) this.Request.Form["search[value]"]).FirstOrDefault();
                int                count       = (text2 != null) ? Convert.ToInt32(text2) : 0;
                int                count2      = (text != null) ? Convert.ToInt32(text) : 0;
                int                num         = 0;
                IQueryable <Place> queryable   = _placeService.GetPlaceQueryable();
                if (base.CurrentUser.Role != UserRole.SuperAdmin)
                {
                    int companyId = base.CurrentUser.CompanyId;
                    queryable = from w in queryable
                                where w.CompanyId == companyId
                                select w;
                }
                if (!string.IsNullOrEmpty(text3) || !string.IsNullOrEmpty(text4))
                {
                    queryable = DynamicQueryableExtensions.OrderBy <Place>(queryable, text3 + " " + text4, Array.Empty <object>());
                }
                if (!string.IsNullOrEmpty(searchValue))
                {
                    queryable = from m in queryable
                                where m.Name.Contains(searchValue)
                                select m;
                }
                num = queryable.Count();
                var items = queryable.Skip(count2).Take(count).ToList();


                //                { "data": "id", "name": "Id", "autoWidth": true },
                //                { "data": "companyName", "name": "CompanyName", "autoWidth": true },
                //                { "data": "name", "name": "Name", "autoWidth": true },
                //                { "data": "address", "name": "Address", "autoWidth": true },
                //                { "data": "latitude", "name": "Latitude", "autoWidth": true },
                //                { "data": "longitude", "name": "Longitude", "autoWidth": true },
                //                { "data": "guest", "name": "Guest", "autoWidth": true },
                //                { "data": "createdDate", "name": "CreatedDate", "autoWidth": true },

                var data = items.Select(a => new {
                    a.Id,
                    CompanyName = a.Company.Name,
                    a.Name,
                    a.Address,
                    a.Latitude,
                    a.Longitude,
                    a.CreatedDate

                    ,
                    Guest = string.Equals(a.Guest, "Evet", StringComparison.InvariantCultureIgnoreCase) ? "Evet" : "Hayır"
                    ,
                }).ToList();


                return(this.Json((object)new
                {
                    draw = draw,
                    recordsFiltered = num,
                    recordsTotal = num,
                    data = data
                }));
            }
            catch (Exception)
            {
                int num2 = 5;
                throw;
            }
        }