示例#1
0
 public static IQueryable <T> ActiveFor <T>(this IQueryable <T> items, User user) where T : IActivatable
 {
     if (user.IsAdministrator)
     {
         return(items);
     }
     return(items.Active());
 }
 /// <summary>
 /// Queries all items which are modififed since a specified date.
 /// </summary>
 /// <typeparam name="TSource">The type of the source.</typeparam>
 /// <param name="query">The current query.</param>
 /// <param name="date">The start date to query</param>
 /// <param name="withDeleted">Determines if the query should contain deleted entities</param>
 /// <returns>Filtered query</returns>
 public static IQueryable <TSource> ModifiedSince <TSource>(this IQueryable <TSource> query, DateTime date, bool withDeleted)
     where TSource : class, IModificationTrackedEntity
 {
     return(query.Active().Where(e => e.Updated > date && ((e.Deleted == null) || withDeleted)));
 }
 /// <summary>
 /// Queries all entities wich are not deleted
 /// </summary>
 /// <typeparam name="TSource">The type of the source.</typeparam>
 /// <param name="query">The current query</param>
 /// <param name="predicate">>A function to test each element for a condition.</param>
 /// <returns>Filtered query with no deleted items</returns>
 public static IQueryable <TSource> Active <TSource>(this IQueryable <TSource> query, Expression <Func <TSource, bool> > predicate)
     where TSource : class, IModificationTrackedEntity
 {
     return(query.Active().Where(predicate));
 }
        public static IQueryable <Question> Urgent(this IQueryable <Question> qry)
        {
            var over25Days = DateTime.Now.AddDays(-25);

            return(qry.Active().NotTaken().Where(q => q.CreatedDate < over25Days));
        }