public async Task <bool> Add(TrainingForAddDto trainingForAddDto, int userId) { var user = await _repoUser.GetUser(userId); var trainingToCreate = Training.Create(trainingForAddDto.Name.Trim(), trainingForAddDto.Date, user); foreach (var trainingExerciseDto in trainingForAddDto.Exercises) { var exercise = await _repoExercise.GetByName(trainingExerciseDto.Exercise.Name, user.Id); if (exercise == null) { _repoExercise.Add(Exercise.Create(trainingExerciseDto.Exercise.Name, user)); await _repoExercise.SaveAll(); exercise = await _repoExercise.GetByName(trainingExerciseDto.Exercise.Name, user.Id); } var exerciseToCreate = TrainingExercise.Create(exercise, user); foreach (var set in trainingExerciseDto.Sets) { var unit = await _repoUnit.GetByCode(set.Unit); var setToCreate = TrainingExerciseSet.Create(set.Reps, set.Weight, unit, user); exerciseToCreate.Sets.Add(setToCreate); } trainingToCreate.Exercises.Add(exerciseToCreate); } _repoTraining.Add(trainingToCreate); return(await _repoTraining.SaveAll()); }
private async Task <Training> CreateTraining(DataContext context, User user) { var training = Training.Create( "Training 1", new DateTime(2020, 7, 20), user ); var exercise = await GetExercise(context); var trainingExercise = TrainingExercise.Create(exercise, user); var unit = await GetUnit(context); var trainingExerciseSet1 = TrainingExerciseSet.Create( 10, 80, unit, user ); var trainingExerciseSet2 = TrainingExerciseSet.Create( 10, 85, unit, user ); trainingExercise.Sets.Add(trainingExerciseSet1); trainingExercise.Sets.Add(trainingExerciseSet2); training.Exercises.Add(trainingExercise); return(training); }