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