Esempio n. 1
0
        public int GetTotalCount(ExerciseFilter filter)
        {
            var query = _repo.Get();

            ApplyQueryFilters(ref query, filter);
            return(query.Count());
        }
        public async Task <int> ExercisesCountAsync(ExerciseFilter exerciseFilter)
        {
            var queryable = _context.Exercise.AsQueryable();

            queryable = FilterExercise(queryable, exerciseFilter);
            return(await queryable.CountAsync());
        }
Esempio n. 3
0
        public IEnumerable <Exercise> Get(int firstRecord, short pageSize, ExerciseFilter filter)
        {
            IQueryable <Exercise> query = _repo.Get();

            if (filter != null)
            {
                ApplyQueryFilters(ref query, filter);
            }

            var output = query.Skip(firstRecord).Take(pageSize);

            return(output);
        }
Esempio n. 4
0
        private ExerciseFilter BuildExerciseFilter(string nameContains, string hasTargetAreas)
        {
            var filter = new ExerciseFilter();

            if (!String.IsNullOrWhiteSpace(nameContains))
            {
                filter.NameContains = nameContains;
            }

            if (!String.IsNullOrWhiteSpace(hasTargetAreas))
            {
                filter.HasTargetAreas = hasTargetAreas.Split(',').ToList();
            }

            return(filter);
        }
Esempio n. 5
0
        private void ApplyQueryFilters(ref IQueryable <Exercise> query, ExerciseFilter filter)
        {
            if (filter == null)
            {
                return;
            }

            if (!string.IsNullOrWhiteSpace(filter.NameContains))
            {
                query = query.Where(exercise => EF.Functions.Like(exercise.Name, "%" + filter.NameContains + "%"));
            }

            if (filter.HasTargetAreas != null && filter.HasTargetAreas.Any())
            {
                //filter.HasTargetAreas.ForEach((targetArea) =>
                foreach (var targetArea in filter.HasTargetAreas)
                {
                    query = query.Where(exercise =>
                                        exercise.ExerciseTargetAreaLinks.Any(links =>
                                                                             EF.Functions.Like(links.TargetArea.Name.ToUpper(), targetArea.ToUpper())));
                }
            }
        }
 private IQueryable <Exercise> FilterExercise(IQueryable <Exercise> queryable, ExerciseFilter exerciseFilter)
 {
     if (exerciseFilter.GoalId != null && exerciseFilter.GoalId.Length > 0)
     {
         return(queryable.Where(x => exerciseFilter.GoalId.Contains(x.GoalId)));
     }
     return(queryable);
 }
        public async Task <List <Exercise> > GetAllExercisesAsync(PaginationFilter paginationFilter, ExerciseFilter exerciseFilter)
        {
            var queryable = _context.Exercise.AsQueryable();

            queryable = FilterExercise(queryable, exerciseFilter);
            var skip = (paginationFilter.PageNumber - 1) * paginationFilter.PageSize;

            return(await queryable
                   .Skip(skip).Take(paginationFilter.PageSize)
                   .ToListAsync());
        }