public void AddNewWorkout(IAddWorkoutView form, IWorkoutRepository workoutRepository, IExerciseRepository exerciseRepository) { if (form.ConfirmAddWorkout() == true) { try { string workoutName = form.WorkoutName; int setsPerExercise; try { setsPerExercise = form.SetsPerExercise; if (setsPerExercise < 1) { throw new Exception(); } } catch (Exception) { MessageBox.Show("Please input valid number of sets per exercise."); return; } if (String.IsNullOrEmpty(workoutName)) { MessageBox.Show("Please input your workout name."); return; } List <string> exerciseNames = form.ExerciseNames; int workoutId = workoutRepository.GetNewId(); List <Exercise> exercises = new List <Exercise>(); foreach (var exerciseName in exerciseNames) { var exercise = exerciseRepository.GetExerciseByName(exerciseName); exercises.Add(exercise); } Workout newWorkout = new Workout(workoutId, workoutName, exercises, setsPerExercise); workoutRepository.AddWorkout(newWorkout); } catch (Exception ex) { MessageBox.Show("EXCEPTION: " + ex.Message); throw; } } }