diff --git a/Classroom Learning Partner/ViewModels/BackStage/OptionsPaneViewModel.cs b/Classroom Learning Partner/ViewModels/BackStage/OptionsPaneViewModel.cs index 23c558f7f..167b045e6 100644 --- a/Classroom Learning Partner/ViewModels/BackStage/OptionsPaneViewModel.cs +++ b/Classroom Learning Partner/ViewModels/BackStage/OptionsPaneViewModel.cs @@ -1,6 +1,11 @@ using System; using System.Drawing; +using System.Linq; +using Catel.IO; using Catel.MVVM; +using Catel.Windows; +using Classroom_Learning_Partner.Services; +using CLP.Entities; namespace Classroom_Learning_Partner.ViewModels { @@ -16,6 +21,8 @@ public OptionsPaneViewModel() private void InitializeCommands() { GenerateRandomMainColorCommand = new Command(OnGenerateRandomMainColorCommandExecute); + ClearHistoryCommand = new Command(OnClearHistoryCommandExecute); + GenerateCommand = new Command(OnGenerateCommandExecute); } #endregion //Constructor @@ -45,5 +52,67 @@ private void OnGenerateRandomMainColorCommandExecute() } #endregion //Commands + + /// SUMMARY + public Command ClearHistoryCommand { get; private set; } + + private void OnClearHistoryCommandExecute() + { + PleaseWaitHelper.Show(() => + { + foreach (var page in _dataService.CurrentNotebookInfo.Notebook.Pages) + { + page.History.ClearNonAnimationHistory(); + } + }, + null, + "Clearing History"); + } + + /// SUMMARY + public Command GenerateCommand { get; private set; } + + private void OnGenerateCommandExecute() + { + // HACK: This is very hardcoded. + if (_dataService == null || + _dataService.CurrentCacheInfo == null || + _dataService.CurrentNotebookInfo == null || + _dataService.CurrentNotebookInfo.Notebook == null) + { + return; + } + + var classInfoPath = Path.Combine(_dataService.CurrentCacheInfo.ClassesFolderPath, "classInfo;KK;S1nEmeKiYkSuPPo3t2nWXQ.xml"); + var classInfo = ClassInformation.LoadFromXML(classInfoPath); + if (classInfo == null) + { + return; + } + + var teacher = classInfo.Teacher; + var copiedNotebookT = _dataService.CurrentNotebookInfo.Notebook.CopyForNewOwner(teacher); + copiedNotebookT.CurrentPage = copiedNotebookT.Pages.FirstOrDefault(); + var notebookCompositeT = NotebookNameComposite.ParseNotebook(copiedNotebookT); + var notebookPathT = Path.Combine(_dataService.CurrentCacheInfo.NotebooksFolderPath, notebookCompositeT.ToFolderName()); + var notebookInfoT = new NotebookInfo(_dataService.CurrentCacheInfo, notebookPathT) + { + Notebook = copiedNotebookT + }; + PleaseWaitHelper.Show(() => _dataService.SaveNotebookLocally(notebookInfoT, true), null, "Saving Notebook for " + teacher.FullName); + + foreach (var person in classInfo.StudentList) + { + var copiedNotebook = _dataService.CurrentNotebookInfo.Notebook.CopyForNewOwner(person); + copiedNotebook.CurrentPage = copiedNotebook.Pages.FirstOrDefault(); + var notebookComposite = NotebookNameComposite.ParseNotebook(copiedNotebook); + var notebookPath = Path.Combine(_dataService.CurrentCacheInfo.NotebooksFolderPath, notebookComposite.ToFolderName()); + var notebookInfo = new NotebookInfo(_dataService.CurrentCacheInfo, notebookPath) + { + Notebook = copiedNotebook + }; + PleaseWaitHelper.Show(() => _dataService.SaveNotebookLocally(notebookInfo, true), null, "Saving Notebook for " + person.FullName); + } + } } } \ No newline at end of file diff --git a/Classroom Learning Partner/Views/BackStage/OptionsPaneView.xaml b/Classroom Learning Partner/Views/BackStage/OptionsPaneView.xaml index a629707ce..0f0688da3 100644 --- a/Classroom Learning Partner/Views/BackStage/OptionsPaneView.xaml +++ b/Classroom Learning Partner/Views/BackStage/OptionsPaneView.xaml @@ -31,6 +31,22 @@ FontSize="22" FontWeight="Bold" /> +