コード例 #1
0
 public virtual void Dispose()
 {
     _controller = null;
     //_messageBox = null;
     _view  = null;
     _model = null;
 }
コード例 #2
0
        public BaseExerciseController(IExerciseModel exerciseModel, IExerciseView exerciseView, IExerciseBackgroundView exerciseBackgroundView, IExerciseHUD hud, ITimerFactory timerFactory,
                                      IExerciseTerminator terminator, ILogger logger, ISoundManager soundManager) : base(logger, terminator, exerciseView)
        {
            _soundManager   = soundManager;
            _model          = exerciseModel;
            _backgroundView = exerciseBackgroundView;
            _hud            = hud;

            _timeoutTimer         = timerFactory.CreateTimer();
            _exerciseTimer        = timerFactory.CreateTimer();
            _botTimer             = timerFactory.CreateTimer();
            _botTimer.OnComplete += ProcessBotAnswer;

            _tutorialManager           = new TutorialManager(_model, _view, _model.ExerciseConfiguration);
            _tutorialManager.OnUpdate += OnTutorialUpdate;

            _tutorialActivityManager = new TutorialActivityManager(logger, 3, 2, exerciseModel.ExerciseInitVO.StartWithTutorial, exerciseModel.ExerciseInitVO.TutorialSystemEnabled);

            var exerciseSettings = _model.ExerciseSettings;

            _view.Settings     = exerciseSettings;
            _soundManager.Mute = exerciseSettings.ContainsKey(ExerciseSettingsEnum.SoundsEnabled) && !exerciseSettings[ExerciseSettingsEnum.SoundsEnabled];

            MapState(BaseStates.INIT, OnStateInit, AfterStateInit);

            _botActived = false;

            _stopped = false;
        }
コード例 #3
0
 public virtual void Init(IExerciseModel model, BaseExerciseController controller, IExerciseView view)
 {
     _controller = controller;
     //_messageBox = messageBox;
     _view       = view;
     _model      = model;
     Initialised = true;
 }
コード例 #4
0
 public StateMachine(ILogger logger, IExerciseTerminator terminator, IExerciseView exerciseView)
 {
     _disposed          = false;
     _terminator        = terminator;
     _view              = exerciseView;
     _logger            = logger;
     _state             = States.UNDEFINED;
     _enterStateMapping = new Dictionary <int, System.Action>();
     _exitStateMapping  = new Dictionary <int, System.Action>();
 }
コード例 #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:ExerciseEngine.Model.Tutorial.TutorialManager"/> class.
 /// </summary>
 /// <param name="model">Model. For listening for level changes.</param>
 /// <param name="view">View. For triggers fired from the view.</param>
 /// <param name="exerciseConfig">Exercise config. For getting tutorial configurations.</param>
 /// <param name="currentDifficulty">Current difficulty. Starting difficulty of exercises</param>
 public TutorialManager(IExerciseModel model, IExerciseView view, IExerciseConfiguration exerciseConfig)
 {
     _model = model;
     _model.OnTutorialTrigger += OnModelUpdate;
     _view                  = view;
     _view.OnUpdate        += OnViewUpdate;
     _exerciseConfiguration = exerciseConfig;
     _tutorialRuns          = new Dictionary <Type, int>();
     _tutorialLoops         = 0;
     _currentRoundTriggers  = new List <ITutorialTrigger>();
 }
コード例 #6
0
        public FlashGlanceController(IExerciseModel exerciseModel, IExerciseView exerciseView, IExerciseBackgroundView exerciseBackgroundView, IExerciseHUD hud, ITimerFactory timerFactory, IExerciseTerminator terminator, ILogger logger, ISoundManager soundManager) : base(exerciseModel, exerciseView, exerciseBackgroundView, hud, timerFactory, terminator, logger, soundManager)
        {
            _random = new Random();

            _spawnTimer             = timerFactory.CreateTimer();
            _spawnTimer.OnComplete += RequestNewItem;

            _moveTimer             = timerFactory.CreateTimer();
            _moveTimer.OnComplete += RequestMovement;

            _switchTimer             = timerFactory.CreateTimer();
            _switchTimer.OnComplete += RequestSwap;
        }
コード例 #7
0
 public void DoExercises()
 {
     if (Test.CategoryName == "Nyelvtan")
     {
         if (GrammarExercises.Count != _currentExerciseNum)
         {
             IExerciseView exerciseView = new GrammarChooseOneExerciseView(
                 GrammarExercises[_currentExerciseNum], new RelayCommand(NextExercise)
                 );
             _gridOfTest.Children.Add(exerciseView.GetUIElement());
             _currentExerciseNum++;
         }
     }
     else
     {
         if (VocabularyExercises.Count != _currentExerciseNum)
         {
             var           exercise     = VocabularyExercises[_currentExerciseNum];
             IExerciseView exerciseView = SetExerciseType(exercise);
             _gridOfTest.Children.Add(exerciseView.GetUIElement());
             _currentExerciseNum++;
         }
     }
 }
コード例 #8
0
        private async void NextExercise()
        {
            var result = new ResultPresenter
            {
                Number    = Results.Count + 1,
                IsCorrect = false
            };

            if (((IExerciseView)_gridOfTest.Children[0]).CheckIsCorrect())
            {
                CorrectAnswers++;
                result.IsCorrect = true;
            }

            Results.Add(result);
            _gridOfTest.Children.Clear();

            if (Test.CategoryName == "Nyelvtan")
            {
                if (GrammarExercises.Count != _currentExerciseNum)
                {
                    IExerciseView exerciseView = new GrammarChooseOneExerciseView(
                        GrammarExercises[_currentExerciseNum], new RelayCommand(NextExercise)
                        );
                    _gridOfTest.Children.Add(exerciseView.GetUIElement());
                    _currentExerciseNum++;
                }
                else
                {
                    Points = (int)(CorrectAnswers / (float)Test.NumberOfQuestions * Test.MaxPoints);
                    End    = true;
                    var service    = new TestService();
                    var testResult = new TestResultDto
                    {
                        RightAnswers = CorrectAnswers,
                        WrongAnswers = Test.NumberOfQuestions - CorrectAnswers,
                        Points       = Points
                    };
                    var userPoints = await service.PostTestResult(LoggedInUser, Test, testResult);

                    LoggedInUser.Points = userPoints;
                }
            }
            else
            {
                if (VocabularyExercises.Count != _currentExerciseNum)
                {
                    var           exercise     = VocabularyExercises[_currentExerciseNum];
                    IExerciseView exerciseView = SetExerciseType(exercise);
                    _gridOfTest.Children.Add(exerciseView.GetUIElement());
                    _currentExerciseNum++;
                }
                else
                {
                    Points = (int)(CorrectAnswers / (float)Test.NumberOfQuestions * Test.MaxPoints);
                    End    = true;
                    var service    = new TestService();
                    var testResult = new TestResultDto
                    {
                        RightAnswers = CorrectAnswers,
                        WrongAnswers = Test.NumberOfQuestions - CorrectAnswers,
                        Points       = Points
                    };
                    var userPoints = await service.PostTestResult(LoggedInUser, Test, testResult);

                    LoggedInUser.Points = userPoints;
                }
            }
        }
コード例 #9
0
 public MemoflowController(IExerciseModel exerciseModel, IExerciseView exerciseView, IExerciseBackgroundView exerciseBackgroundView, IExerciseHUD hud, ITimerFactory timerFactory, IExerciseTerminator terminator, ILogger logger, ISoundManager soundManager) : base(exerciseModel, exerciseView, exerciseBackgroundView, hud, timerFactory, terminator, logger, soundManager)
 {
 }
コード例 #10
0
 public LearnWordService(IExerciseView view, List <Word> words)
 {
     View       = view;
     View.Words = words;
     Initialized();
 }
コード例 #11
0
 public ExerciseController(Exercise exercise, IExerciseView view)
 {
     this.exercise = exercise;
     this.view     = view;
 }