241 lines
6.8 KiB
C#
241 lines
6.8 KiB
C#
using Mysqlx.Crud;
|
|
using StudentManager.Common;
|
|
using StudentManager.Data;
|
|
using StudentManager.Extensions;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace StudentManager.Model
|
|
{
|
|
class MenuBar : BindableBase
|
|
{
|
|
private string icon;
|
|
/// <summary>
|
|
/// Icon
|
|
/// </summary>
|
|
public string Icon
|
|
{
|
|
get { return icon; }
|
|
set { icon = value; }
|
|
}
|
|
|
|
private string title;
|
|
|
|
public string Title
|
|
{
|
|
get { return title; }
|
|
set { title = value; }
|
|
}
|
|
|
|
|
|
private string nameSpace;
|
|
|
|
public string NameSpace
|
|
{
|
|
get { return nameSpace; }
|
|
set { nameSpace = value; }
|
|
}
|
|
|
|
|
|
}
|
|
|
|
class Students : BindableBase
|
|
{
|
|
|
|
private ObservableCollection<StudentInfo> studentDatas = new ObservableCollection<StudentInfo>();
|
|
public ReadOnlyObservableCollection<StudentInfo> StudentDatas { get; private set; }
|
|
|
|
private ObservableCollection<QuestionData> questionDatas = new ObservableCollection<QuestionData>();
|
|
public ReadOnlyObservableCollection<QuestionData> QuestionDatas { get; private set; }
|
|
|
|
private ObservableCollection<DetailErrorInfo> errorSetDatas = new ObservableCollection<DetailErrorInfo>();
|
|
public ReadOnlyObservableCollection<DetailErrorInfo> ErrorSetDatas { get; private set; }
|
|
|
|
private ObservableCollection<CursonQuestionsData> cQDatas = new ObservableCollection<CursonQuestionsData>();
|
|
public ReadOnlyObservableCollection<CursonQuestionsData> CQDatas { get; private set; }
|
|
|
|
|
|
private ObservableCollection<DetailHomeWorkSetInfo> homeWorkSet = new ObservableCollection<DetailHomeWorkSetInfo>();
|
|
public ObservableCollection<DetailHomeWorkSetInfo> HomeWorkSet { get { return homeWorkSet; } private set { homeWorkSet = value; RaisePropertyChanged(); } }
|
|
|
|
private ObservableCollection<DetailHomeWorkInfo> homeWork = new ObservableCollection<DetailHomeWorkInfo>();
|
|
public ObservableCollection<DetailHomeWorkInfo> HomeWork { get { return homeWork; } private set { homeWork = value; RaisePropertyChanged(); } }
|
|
|
|
private ObservableCollection<MenuBar> menuBars = new ObservableCollection<MenuBar>();
|
|
public ReadOnlyObservableCollection<MenuBar> MenuBars { get; private set; }
|
|
|
|
|
|
|
|
private int totalQuestions;
|
|
public int TotalQuestions
|
|
{
|
|
get { return totalQuestions; }
|
|
set { totalQuestions = value; }
|
|
}
|
|
|
|
|
|
private StudentInfo selectedStudent;
|
|
public StudentInfo SelectedStudent
|
|
{
|
|
get { return selectedStudent; }
|
|
set { selectedStudent = value; RaisePropertyChanged(); }
|
|
}
|
|
|
|
|
|
private DetailHomeWorkSetInfo selectedHomeWorkSet;
|
|
public DetailHomeWorkSetInfo SelectedHomeWorkSet
|
|
{
|
|
get { return selectedHomeWorkSet; }
|
|
set { selectedHomeWorkSet = value; RaisePropertyChanged(); }
|
|
}
|
|
|
|
private DetailHomeWorkInfo selectedHomeWork;
|
|
public DetailHomeWorkInfo SelectedHomeWork
|
|
{
|
|
get { return selectedHomeWork; }
|
|
set { selectedHomeWork = value; RaisePropertyChanged(); }
|
|
}
|
|
|
|
private StudentInfo studentInfo;
|
|
|
|
public StudentInfo StudentInfo
|
|
{
|
|
get { return studentInfo; }
|
|
set { studentInfo = value; RaisePropertyChanged(); }
|
|
}
|
|
|
|
private DetailErrorSetInfo errorSet;
|
|
|
|
public DetailErrorSetInfo ErrorSet
|
|
{
|
|
get { return errorSet; }
|
|
set { errorSet = value; RaisePropertyChanged(); }
|
|
}
|
|
|
|
|
|
|
|
|
|
private readonly IRegionManager regionManager;
|
|
|
|
public DelegateCommand<string> RegionTo { get; set; }
|
|
public DelegateCommand<StudentInfo> SelectedCommand { get; set; }
|
|
public DelegateCommand<DetailHomeWorkInfo> HomeWorkSelectedCommand { get; set; }
|
|
public DelegateCommand<DetailHomeWorkSetInfo> HomeWorkSetSelectedCommand { get; set; }
|
|
public DelegateCommand RegionToDetailCommand { get; set; }
|
|
public DelegateCommand SubmitHomeWorkCommand { get; set; }
|
|
|
|
Students(IRegionManager regionManager)
|
|
{
|
|
CreateMenuBar();
|
|
|
|
RegionTo = new DelegateCommand<string>((x) => {
|
|
regionManager.Regions[PrismManager.MainRegionName].RequestNavigate(x.ToString());
|
|
if(x == "DetailCheckView")
|
|
{
|
|
RegionToDetailCheckView();
|
|
}
|
|
if (x == "DetailView")
|
|
{
|
|
RegionToDetailView();
|
|
}
|
|
RegionToStudents();
|
|
});
|
|
|
|
SubmitHomeWorkCommand = new DelegateCommand(() => SubmitHomeWork());
|
|
|
|
SelectedCommand = new DelegateCommand<StudentInfo>((x) =>
|
|
{
|
|
if (x == null) return;
|
|
SelectedStudent = x;
|
|
RegionToDetailView();
|
|
});
|
|
|
|
HomeWorkSetSelectedCommand = new DelegateCommand<DetailHomeWorkSetInfo>((x) =>
|
|
{
|
|
if (x == null) return;
|
|
selectedHomeWorkSet = x;
|
|
HomeWork = SelectedStudent.HomeWorkSet.GetDetailHomeWorkList(SelectedHomeWorkSet.Lesson);
|
|
});
|
|
|
|
HomeWorkSelectedCommand = new DelegateCommand<DetailHomeWorkInfo>((e) =>
|
|
{
|
|
if(e == null) return;
|
|
//HomeWork =
|
|
});
|
|
|
|
|
|
Load();
|
|
|
|
StudentDatas = new ReadOnlyObservableCollection<StudentInfo>(studentDatas);
|
|
QuestionDatas = new ReadOnlyObservableCollection<QuestionData>(questionDatas);
|
|
ErrorSetDatas = new ReadOnlyObservableCollection<DetailErrorInfo>(errorSetDatas);
|
|
MenuBars = new ReadOnlyObservableCollection<MenuBar>(menuBars);
|
|
//CQDatas = new ReadOnlyObservableCollection<CursonQuestionsData>(cQDatas);
|
|
HomeWorkSet = new ObservableCollection<DetailHomeWorkSetInfo>(homeWorkSet);
|
|
|
|
|
|
|
|
|
|
this.regionManager = regionManager;
|
|
|
|
|
|
SaveAll();
|
|
}
|
|
|
|
private void SubmitHomeWork()
|
|
{
|
|
SelectedStudent.HomeWorkSet.Get(SelectedHomeWorkSet.Lesson).Questions.ForEach(x =>
|
|
{
|
|
x.Status = HomeWork.FirstOrDefault(hw => hw.PID == x.ID).Status;
|
|
});
|
|
}
|
|
|
|
private void RegionToDetailView()
|
|
{
|
|
if(selectedStudent == null) return;
|
|
ErrorSet = selectedStudent.ErrorSet.GetDetailErrorSetInfo();
|
|
HomeWorkSet = selectedStudent.HomeWorkSet.GetDetailHomeWorkSetList();
|
|
}
|
|
|
|
private void RegionToDetailCheckView()
|
|
{
|
|
if (selectedHomeWorkSet == null) return;
|
|
HomeWork = SelectedStudent.HomeWorkSet.GetDetailHomeWorkList(SelectedHomeWorkSet.Lesson);
|
|
}
|
|
|
|
private void RegionToStudents()
|
|
{
|
|
|
|
}
|
|
|
|
void CreateMenuBar()
|
|
{
|
|
menuBars.Add(new MenuBar() { Icon = "ForumPlusOutline", Title = "学生", NameSpace = "StudentsView" });
|
|
menuBars.Add(new MenuBar() { Icon = "CodeGreaterThanOrEqual", Title = "详情", NameSpace = "DetailView" });
|
|
menuBars.Add(new MenuBar() { Icon = "CodeGreaterThanOrEqual", Title = "题库", NameSpace = "QuestionsView" });
|
|
menuBars.Add(new MenuBar() { Icon = "CodeGreaterThanOrEqual", Title = "审批", NameSpace = "CheckView" });
|
|
//menuBars.Add(new MenuBar() { Icon = "CodeGreaterThanOrEqual", Title = "出题", NameSpace = "QuestionsView" });
|
|
menuBars.Add(new MenuBar() { Icon = "CodeGreaterThanOrEqual", Title = "出题", NameSpace = "DetailCheckView" });
|
|
}
|
|
|
|
private void Load()
|
|
{
|
|
StudentLib.Load();
|
|
QuestionLib.Load();
|
|
studentDatas = StudentLib.GetAllStudents();
|
|
questionDatas = QuestionLib.GetAllQuestion();
|
|
}
|
|
|
|
private void SaveAll()
|
|
{
|
|
StudentLib.Save();
|
|
QuestionLib.Save();
|
|
}
|
|
}
|
|
}
|