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)); }