Exemplo n.º 1
0
        public async Task AddExerciseToTrainingAsync_WithValidModel_ShouldAddTheExerciseToTheTraining()
        {
            var training = new Training()
            {
                Name = trainingName
            };

            var exercise = new Exercise()
            {
                Name         = exerciseName,
                TargetMuscle = targertMuscleConstant
            };

            var user = await this.dbContext.Users.FindAsync(MockUserManager.testUserId);

            user.Trainings.Add(training);
            user.Exercises.Add(exercise);

            await this.dbContext.SaveChangesAsync();

            TrainingExerciseInput model = new TrainingExerciseInput()
            {
                ExerciseId      = exercise.Id,
                RepetitionCount = 1,
                SeriesCount     = 1
            };

            await this.service.AddExerciseToTrainingAsync(model, training.Id, MockUserManager.testUsername);

            Assert.AreEqual(1, user.Trainings.First().Exercises.Count);
            Assert.AreSame(exerciseName, user.Trainings.First().Exercises.First().Exercise.Name);
        }
Exemplo n.º 2
0
        public async Task AddExerciseToTrainingAsync(TrainingExerciseInput model, int id, string username)
        {
            CoreValidator.ThrowIfNull(model);

            var user = await this.GetUserByNamedAsync(username);

            var training = await this.GetTrainingAsync(id, username);

            if (!this.DbContext.Exercises
                .Where(e => e.UserId == user.Id)
                .Any(ex => ex.Id == model.ExerciseId))
            {
                throw new InvalidExerciseException();
            }

            training.Exercises.Add(this.Mapper.Map <TrainingExercise>(model));
            await this.DbContext.SaveChangesAsync();
        }