Пример #1
0
        public async Task <int> AddAsync(string name, string partOfBody)
        {
            var exercise = await _exerciseRepository.CheckIfExistsAsync(name);

            exercise = new Exercise(name, PartOfBody.GetPart(partOfBody));

            await _exerciseRepository.AddAsync(exercise);

            return(exercise.Id);
        }
Пример #2
0
        public async Task UpdateAsync(int id, string name, string partOfBody)
        {
            var exercise = await _exerciseRepository.GetOrFailAsync(id);

            // If exercise has the same name, ensure that name will be searching for exercise with this name
            if (await _exerciseRepository.AnyAsync(p => p.Name == name))
            {
                if (exercise.Name != name)
                {
                    throw new NameInUseException(nameof(Exercise), name);
                }
            }

            exercise.SetName(name);
            exercise.PartOfBody.Id = PartOfBody.GetPart(partOfBody).Id;

            await _exerciseRepository.UpdateAsync(exercise);
        }
Пример #3
0
        public async Task <PagedList <Exercise> > GetAllAsync(string name, string partOfBody, PaginationQuery paginationQuery)
        {
            IQueryable <Exercise> query = _context.Exercises.Include(e => e.PartOfBody)
                                          .AsNoTracking();

            if (name is not null)
            {
                query = query.Where(e => e.Name.Contains(name));
            }

            if (partOfBody is not null)
            {
                query = query.Where(e => e.PartOfBody.Name == PartOfBody.GetPart(partOfBody).Name);
            }

            return(await PagedList <Exercise> .ToPagedList(query.OrderBy(e => e.Name),
                                                           paginationQuery.PageNumber,
                                                           paginationQuery.PageSize));
        }