public int GetTotalCount(WorkoutFilter filter) { var query = _repo.Get(); ApplyQueryFilters(ref query, filter); return(query.Count()); }
public IEnumerable <Workout> Get(int firstRecord, short pageSize, WorkoutFilter filter) { IQueryable <Workout> query = _repo.Get(); if (filter != null) { ApplyQueryFilters(ref query, filter); } var output = query.Skip(firstRecord).Take(pageSize); return(output); }
private WorkoutFilter BuildWorkoutFilter(int userId, bool activeOnly, string nameContains) { var filter = new WorkoutFilter(); filter.UserId = userId; filter.ActiveOnly = activeOnly; if (!String.IsNullOrWhiteSpace(nameContains)) { filter.NameContains = nameContains; } return(filter); }
private static void ApplyQueryFilters(ref IQueryable <Workout> query, WorkoutFilter filter) { if (filter == null) { return; } query = query.Where(workout => workout.CreatedByUserId == filter.UserId); if (filter.ActiveOnly) { query = query.Where(workout => workout.Active); } if (!string.IsNullOrWhiteSpace(filter.NameContains)) { query = query.Where(workout => EF.Functions.Like(workout.Name, "%" + filter.NameContains + "%")); } }