示例#1
0
 public static IQueryable <Employee> Sort(this IQueryable <Employee> employees, string orderByQueryString)
 {
     if (string.IsNullOrWhiteSpace(orderByQueryString))
     {
         return(employees.OrderBy(e => e.Name));
     }
     OrderQueryBuilder.CreateOrderQuery <Employee>(orderByQueryString);
 }
示例#2
0
        public static IQueryable <Product> Sort(this IQueryable <Product> products, string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(products.OrderBy(e => e.Id));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Product>(orderByQueryString);

            return(string.IsNullOrWhiteSpace(orderQuery) ?
                   products.OrderBy(e => e.Id) :
                   products.OrderBy(orderQuery));
        }
示例#3
0
        public static IQueryable <Organization> Sort(this IQueryable <Organization> organizations, string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(organizations.OrderBy(e => e.OrgName));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Organization>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(organizations.OrderBy(e => e.OrgName));
            }

            return(organizations.OrderBy(orderQuery));
        }
示例#4
0
        public static IQueryable <Post> SortPosts(this IQueryable <Post> posts, string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(posts.OrderByDescending(p => p.CreatedOn));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Post>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(posts.OrderByDescending(p => p.CreatedOn));
            }

            return(posts.OrderBy(orderQuery));
        }
示例#5
0
        public static IQueryable <Account> Sort(this IQueryable <Account> accounts, string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(accounts.OrderBy(a => a.FirstName));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Account>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(accounts.OrderBy(a => a.FirstName));
            }

            return(accounts.OrderBy(orderQuery));
        }
示例#6
0
        public static IQueryable <Event> Sort(this IQueryable <Event> events, string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(events.OrderBy(e => e.EventName));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Event>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(events.OrderBy(e => e.EventName));
            }

            return(events.OrderBy(orderQuery));
        }
示例#7
0
        public static IQueryable <Review> Sort(this IQueryable <Review> reviews, string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(reviews.OrderBy(r => r.Heading));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Review>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(reviews.OrderBy(r => r.Heading));
            }

            return(reviews.OrderBy(orderQuery));
        }
示例#8
0
        public static IQueryable <Tarefa> Sort(this IQueryable <Tarefa> tarefas, string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(tarefas.OrderBy(e => e.Finalizada).ThenBy(e => e.Descricao));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Tarefa>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(tarefas.OrderBy(e => e.Finalizada).ThenBy(e => e.Descricao));
            }

            return(tarefas.OrderBy(orderQuery));
        }
示例#9
0
        public static IQueryable <Person> Sort(this IQueryable <Person> persons, string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(persons.OrderBy(p => p.Name));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Person>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(persons.OrderBy(p => p.Name));
            }

            return(persons.OrderBy(orderQuery));
        }
        public static IQueryable <User> Sort(this IQueryable <User> users, string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(users.OrderBy(e => e.UserName));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <User>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(users.OrderBy(e => e.UserName));
            }

            return(users.OrderBy(orderQuery));
        }
示例#11
0
        public static IQueryable <Categoria> Sort(this IQueryable <Categoria> categorias, string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(categorias.OrderBy(e => e.Nome));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Categoria>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(categorias.OrderBy(e => e.Nome));
            }

            return(categorias.OrderBy(orderQuery));
        }
示例#12
0
        public static IQueryable <Articulo> Sort(this IQueryable <Articulo> articulos, string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(articulos.OrderBy(e => e.Nombre));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Articulo>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(articulos.OrderBy(e => e.Nombre));
            }

            return(articulos.OrderBy(orderQuery));
        }
        public static IQueryable <CourseMgt> Sort(this IQueryable <CourseMgt> courseMgt, string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(courseMgt.OrderBy(e => e.CourseTitle));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <CourseMgt>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(courseMgt.OrderBy(e => e.CourseTitle));
            }

            return(courseMgt.OrderBy(orderQuery));
        }
        public static IQueryable <Purchase> Sort(this IQueryable <Purchase> purchases, string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(purchases.OrderBy(p => p.TotalPrice));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Purchase>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(purchases.OrderBy(p => p.TotalPrice));
            }

            return(purchases.OrderBy(orderQuery));
        }
示例#15
0
        /// <summary>
        /// Sort
        /// </summary>
        public static IQueryable <Employee> Sort(this IQueryable <Employee> employees, string orderByQueryString)
        {
            // If it is null or empty, we just return the same collection ordered by name.
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(employees.OrderBy(e => e.Name));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Employee>(orderByQueryString);

            // doing one last check to see if our query indeed has something in it
            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(employees.OrderBy(e => e.Name));
            }

            return(employees.OrderBy(orderQuery));
        }
        public static IQueryable <Employee> Sort(
            this IQueryable <Employee> employees,
            string orderByQueryString
            )
        {
            //orderBy=name,age desc
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(employees.OrderBy(employee => employee.Name));
            }

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Employee>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(employees.OrderBy(e => e.Name));
            }
            return(employees.OrderBy(orderQuery));
        }
        public static IQueryable <Employee> Sort(this IQueryable <Employee> employees, string orderByQueryString)
        {
            //basic check on the orderByQueryString
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(employees.OrderBy(e => e.Name));
            }


            //removing excess commas and doing one last check to see if our query indeed has something in it
            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Employee>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(employees.OrderBy(e => e.Name));
            }

            return(employees.OrderBy(e => e.Age).ThenByDescending(o => o.Name));    //short trick
            //return employees.OrderBy(employees => orderQuery);
        }
示例#18
0
        public static IQueryable <Employee> Sort(this IQueryable <Employee> employees,
                                                 string orderByQueryString)
        {
            if (string.IsNullOrWhiteSpace(orderByQueryString))
            {
                return(employees.OrderBy(e => e.Name));
            }

            //var orderParams = orderByQueryString.Trim().Split(',');
            //var propertyInfos = typeof(Employee).GetProperties(BindingFlags.Public |
            //    BindingFlags.Instance);
            //var orderQueryBuilder = new StringBuilder();

            //foreach (var param in orderParams)
            //{
            //    if (string.IsNullOrWhiteSpace(param))
            //        continue;

            //    var propertyFromQueryName = param.Split(" ")[0];
            //    var objectProperty = propertyInfos.FirstOrDefault(pi => pi.Name.Equals(propertyFromQueryName,
            //        StringComparison.InvariantCultureIgnoreCase));

            //    if (objectProperty == null) continue;

            //    var direction = param.EndsWith(" desc") ? "descending" : "ascending";
            //    orderQueryBuilder.Append($"{objectProperty.Name.ToString()} {direction}, ");
            //}
            //  var orderQuery = orderQueryBuilder.ToString().TrimEnd(',', ' ');

            var orderQuery = OrderQueryBuilder.CreateOrderQuery <Employee>(orderByQueryString);

            if (string.IsNullOrWhiteSpace(orderQuery))
            {
                return(employees.OrderBy(e => e.Name));
            }

            return(employees.OrderBy(orderQuery));
        }