public static System.Linq.Expressions.Expression <Func <AbuseQueryEntity, bool> > returnWhereClause(AbuseEntity entity) { var where_clause = PredicateBuilder.New <AbuseQueryEntity>(true); if (entity.contentid > 0) { where_clause = where_clause.And(p => p.abusereports.contentid != entity.contentid); } where_clause = where_clause.And(p => p.abusereports.type == (byte)entity.type); if (entity.status != Status.All) { where_clause = where_clause.And(p => p.abusereports.status == (byte)entity.status); } return(where_clause); }
public static IQueryable <AbuseQueryEntity> processOptionalConditions(IQueryable <AbuseQueryEntity> collectionQuery, AbuseEntity query) { if (query.order != "") { collectionQuery = (IQueryable <AbuseQueryEntity>)collectionQuery.Sort(query.order); } if (query.id == 0) { // skip logic if (query.pagenumber > 1) { collectionQuery = collectionQuery.Skip(query.pagesize * (query.pagenumber - 1)); } // take logic if (!query.loadall) { collectionQuery = collectionQuery.Take(query.pagesize); } } return(collectionQuery); }
public static Task <int> Count(ApplicationDbContext context, AbuseEntity entity) { return(prepareQuery(context, entity).CountAsync()); }
private static IQueryable <AbuseQueryEntity> prepareQuery(ApplicationDbContext context, AbuseEntity entity) { return(context.JGN_AbuseReports .Join(context.AspNetusers, abuse => abuse.userid, user => user.Id, (abuse, user) => new AbuseQueryEntity { abusereports = abuse, user = user }).Where(returnWhereClause(entity))); }
public static Task <List <JGN_AbuseReports> > LoadItems(ApplicationDbContext context, AbuseEntity entity) { var collectionQuery = processOptionalConditions(prepareQuery(context, entity), entity); return(LoadCompleteList(collectionQuery)); }