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; }
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; }