public async Task <IHttpActionResult> Save(ExerciseDetailsDTO model)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest("Invalid Model"));
     }
     return(Ok(await _exerciseService.AddOrUpdateExerciseAsync(model)));
 }
Пример #2
0
        public async Task <int> AddOrUpdateExerciseAsync(ExerciseDetailsDTO dto)
        {
            var exercise     = Mapper.Map <ExerciseDetailsDTO, Exercise>(dto);
            var exerciseInDb = await _exerciseRepository.CollectionWithTracking.Include(z => z.ExerciseCriterias).FirstOrDefaultAsync(f => f.Id == exercise.Id);

            if (exerciseInDb == null)
            {
                _exerciseRepository.Insert(exercise);
            }
            else
            {
                Mapper.Map(exercise, exerciseInDb);
                _exerciseCriteriaRepository.Delete(exerciseInDb.ExerciseCriterias.ToArray());
                exerciseInDb.ExerciseCriterias.AddRange(exercise.ExerciseCriterias);
                _exerciseRepository.Update(exerciseInDb);
            }
            await _unitOfWork.SaveChangesAsync();

            return(exercise.Id);
        }