Exemplo n.º 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;
 }
Exemplo n.º 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;
 }
Exemplo n.º 3
0
 public StudentInfoViewModel(Student student, IViewModelsFactory factory, IEducationMaterialsManager materialsManager, IEducationTasksManager tasksManager)
 {
     _student            = student;
     Materials           = new ObservableCollection <StudentEducationMaterial>(materialsManager.Select(student));
     Tasks               = new ObservableCollection <StudentEducationTask>(tasksManager.Select(student));
     OpenMaterialDetails = new DelegateCommand(() => {
         if (SelectedMaterial != null)
         {
             ViewService.CreateView(factory.MaterialDetailsWindowViewModel(SelectedMaterial)).ShowDialog();
         }
     });
     OpenTaskDetails = new DelegateCommand(() => {
         if (SelectedTask != null)
         {
             ViewService.CreateView(factory.TaskDetailsWindowViewModel(SelectedTask)).ShowDialog();
         }
     });
 }
Exemplo n.º 4
0
 public AddTaskWindowViewModel(Teacher teacher, IEducationMaterialsManager materialsManager, IEducationTasksManager tasksManager)
 {
     Materials   = new ObservableCollection <EducationMaterial>(materialsManager.Select(teacher));
     Questions   = new ObservableCollection <QuestionViewModel>();
     AddQuestion = new DelegateCommand(() => Questions.Add(new QuestionViewModel()));
     Save        = new DelegateCommand(() => {
         tasksManager.Insert(new EducationTask(tasksManager.Id(teacher), SelectedMaterial, Questions.Select(i => new TaskQuestion(i.Question, i.Correct, i.UnCorrect)).ToList()));
         ViewService.Message("Контрольная работа сохранена");
     });
 }
Exemplo n.º 5
0
 public StudentDetailsWindowViewModel(Student student, Teacher teacher, IEducationMaterialsManager educationMaterialsManager, IEducationTasksManager tasksManager)
 {
     Materials    = new ObservableCollection <StudentMaterialViewModel>(educationMaterialsManager.Select(student).Select(i => new StudentMaterialViewModel(i)));
     Tasks        = new ObservableCollection <StudentTaskViewModel>(tasksManager.Select(student).Select(i => new StudentTaskViewModel(i)));
     AddMaterials = new DelegateCommand(() => {
         _materialsToStudent = new MaterialsToStudentViewModel(educationMaterialsManager.Select(teacher).Select(i => new MaterialSelectorItem(i, Materials.Any(j => j.Model().Owner.Equals(i.Owner) && j.Theme == i.Theme))));
         _materialsToStudent.ItemsChanged += (sender, e) => {
             foreach (var foo in _materialsToStudent.Materials.Where(i => i.IsSelected).Where(i => !Materials.Any(j => j.Equals(i))))
             {
                 Materials.Add(new StudentMaterialViewModel(new StudentEducationMaterial(student, foo.EducationMaterial)));
             }
         };
         ViewService.CreateView(_materialsToStudent).ShowDialog();
     });
     AddTasks = new DelegateCommand(() => {
         _taskToStudent = new TaskToStudentWindowViewModel(tasksManager.Select(teacher).Select(i => new TaskSelectorItem(i, Tasks.Any(j => j.TaskNumder == i.Id))));
         _taskToStudent.ItemsChanged += (sender, e) => {
             foreach (var task in _taskToStudent.Tasks.Where(i => i.IsSelected).Where(i => !Tasks.Any(j => j.TaskNumder == i.Task.Id)))
             {
                 Tasks.Add(new StudentTaskViewModel(new StudentEducationTask(student, task.Task)));
             }
         };
         ViewService.CreateView(_taskToStudent).ShowDialog();
     });
     Save = new DelegateCommand(() => {
         foreach (var material in Materials.Select(i => i.Model()))
         {
             educationMaterialsManager.Insert(material);
         }
         foreach (var task in Tasks)
         {
             tasksManager.Insert(task.Model());
         }
         ViewService.Message("Изменения сохранены");
     });
     _student = student;
 }