public XmlSerializationTrainingPlanFormatter(Exercise deletedExercise)
 {
     this.deletedExercise = deletedExercise;
 }
        public Model.Exercise Next()
        {
            wordIndex++;
            if (wordIndex >= words.Count)
            {
                return null;
            }
            //
            //Need to select which exercise to use for current word
            List<ExerciseInfo> possibleExercises = SelectExercies(words[wordIndex].Level);
            System.Diagnostics.Debug.Assert(possibleExercises.Count != 0, "At least one exercie should be applicable");
            //
            //If have more than one use random
            currentExercise = possibleExercises[0];
            if (possibleExercises.Count > 1)
            {
                currentExercise = possibleExercises[random.Next(possibleExercises.Count)];
            }
            //
            // Create model
            currentExerciceModel = Activator.CreateInstance(currentExercise.Model, new object[] { words[wordIndex] }) as Model.Exercise;
            //
            //
            if (words[wordIndex].State == State.New)
            {
                NewWordsSeenCount++;
            }
            else
            {
                WordsCount++;
            }

            return currentExerciceModel;
        }