コード例 #1
0
 public ViewModelsFactory(ILoginManager loginManager, IRegisterManager registerManager,
                          IEducationMaterialsManager educationMaterialsManager, IEducationTasksManager tasksManager,
                          IStudentsManager studentsManager, ITeachersManager teachersManager, IEducationTaskExaminationManager education)
 {
     _loginManager              = loginManager;
     _registerManager           = registerManager;
     _educationMaterialsManager = educationMaterialsManager;
     _tasksManager              = tasksManager;
     _studentsManager           = studentsManager;
     _teachersManager           = teachersManager;
     _education = education;
 }
コード例 #2
0
 public TaskDetailsWindowViewModel(StudentEducationTask task, IEducationTasksManager tasksManager, IEducationTaskExaminationManager examination)
 {
     Theme           = task.Material.Theme;
     _random         = new Random();
     Questions       = new ObservableCollection <QuestionSelectorViewModel>(task.Questions.Select(i => new QuestionSelectorViewModel(i, _random)));
     CurrentQuestion = Questions.First();
     _prev           = new DelegateCommand(() => {
         var index = Questions.IndexOf(CurrentQuestion);
         if (index > 0)
         {
             CurrentQuestion.Check();
             CurrentQuestion       = Questions[--index];
             CurrentQuestionNumber = ++index;
         }
     }, () => CurrentQuestionNumber - 1 > 0);
     _next = new DelegateCommand(() => {
         var index = Questions.IndexOf(CurrentQuestion);
         if (index < Questions.Count - 1)
         {
             CurrentQuestion.Check();
             CurrentQuestion       = Questions[++index];
             CurrentQuestionNumber = ++index;
         }
     }, () => CurrentQuestionNumber - 1 < Questions.Count - 1);
     Finish = new DelegateCommand(() => {
         var result = examination.Examine(task, Questions.Select(i => new KeyValuePair <TaskQuestion, string>(task.Questions.FirstOrDefault(j => j.Question.Trim() == i.Question.Trim()), i.CurrentAnswer)));
         tasksManager.Insert(result);
         if (ViewService.GetIfOpened(out var view, this))
         {
             view.Close();
             ViewService.Message($"Ваша оценка {result.Solution.Mark}");
         }
     });
     SelectAnswer          = new DelegateCommand <string>((param) => CurrentQuestion.CurrentAnswer = param);
     CurrentQuestionNumber = 1;
 }