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("Контрольная работа сохранена"); }); }
public AddMaterialWindowViewModel(IEducationMaterialsManager materialsManager, Teacher teacher) { _materialsManager = materialsManager; _teacher = teacher; MaterialParts = new ObservableCollection <MaterialPartViewModel>(); Save = new DelegateCommand(() => { _materialsManager.Insert(new EducationMaterial(_teacher, Theme, MaterialParts.Select(i => new EducationMaterialPart(i.Theme, i.Content)).ToList())); ViewService.Message("Материал сохранен"); }); AddPart = new DelegateCommand(() => MaterialParts.Add(new MaterialPartViewModel())); }
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 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(); } }); }
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; }
public MaterialDetailsWindowViewModel(StudentEducationMaterial educationMaterial, IEducationMaterialsManager materialsManager) { Theme = educationMaterial.Theme; Parts = new ObservableCollection <MaterialPartViewModel>(educationMaterial.PartsInfo.Select(i => new MaterialPartViewModel { Theme = i.Key.Theme, Content = i.Key.Content, IsReaded = i.Value })); _sessionCount = educationMaterial.SessionsCount + 1; Close = new DelegateCommand(() => { var parts = new List <SerializableKeyValuePair <EducationMaterialPart, bool> >(); foreach (var part in Parts) { var origin = educationMaterial.Parts.FirstOrDefault(i => i.Theme == part.Theme); parts.Add(new SerializableKeyValuePair <EducationMaterialPart, bool>(origin, part.IsReaded)); } var result = new StudentEducationMaterial(educationMaterial.Student, educationMaterial.Owner, educationMaterial.Theme, _sessionCount, parts); materialsManager.Insert(result); if (ViewService.GetIfOpened(out var view, this)) { view.Close(); } }); }