private async void ViewSelectedExamChanged(IImportView sender) { if (!ReferenceEquals(sender.CurrentExamSaver, currentExamSaver)) { sender.IsExamLoading = true; sender.IsExamLoading = true; ExamsListService examsList = ExamsListService.GetInstance(); IExamSaver saver = sender.CurrentExamSaver; IList <Question> questions = await Task.Run(() => saver.GetQuestions()); if (questions == null) { sender.ShowError($"Не удалось загрузить экзамен.\nОн был удален из списка.{ Environment.NewLine }Ошибка: { saver.LastExceptionMessage }"); examsList.Remove(sender.CurrentExamSaver); currentExamSaver = null; sender.IsExamLoading = false; return; } else { currentExamSaver = sender.CurrentExamSaver; sender.Questions = questions; sender.IsExamLoading = false; } } }
private async void ViewExamChanged(IStartView sender) { if (!ReferenceEquals(sender.CurrentExamSaver, currentExamSaver)) { sender.IsExamLoading = true; ExamsListService examsList = ExamsListService.GetInstance(); IExamSaver saver = sender.CurrentExamSaver; Exam exam = await ApplicationController.Run <LoadingContextPresenter <Exam>, Task <Exam> >(Task.Run(() => saver.GetExam())).GetTask(); if (exam == null) { sender.ShowError($"Не удалось загрузить экзамен.\nОн был удален из списка.{saver.LastExceptionMessage}"); try { examsList.Remove(sender.CurrentExamSaver); } catch { } currentExamSaver = null; sender.IsExamLoading = false; return; } else { currentExamSaver = sender.CurrentExamSaver; sender.CurrentExam = exam; sender.IsExamLoading = false; } } }
private void LoadExamsList(IImportView view) { view.IsListLoading = true; currentExamSaver = null; view.ExamSavers = ExamsListService.GetInstance().ExamSavers; view.IsListLoading = false; }
private async void ViewOpened(IStartView sender, OpenExamEventArgs e) { Exam exam = null; IExamSaver loaded = null; ExamsListService examsList = ExamsListService.GetInstance(); try { loaded = new FileExamSaver(e.FilePath, e.Password, sender.CurrentExamSaver.SaverName); int index = examsList.ExamSavers.IndexOf(loaded); if (index >= 0) { sender.CurrentExamSaver = examsList.ExamSavers[index]; currentExamSaver = examsList.ExamSavers[index]; return; } } catch { } loaded = new FileExamSaver(e.FilePath, e.Password, ""); exam = await Task.Run(() => loaded.GetExam()); if (exam != null) { loaded = new FileExamSaver(e.FilePath, e.Password, exam.Name); examsList.Add(loaded); sender.CurrentExam = exam; currentExamSaver = loaded; } else { sender.ShowError($"Не удалось открыть экзамен. {loaded.LastExceptionMessage}"); } }
public int IndexOf(IExamSaver item) { int result = examSavers.IndexOf(item); ListRefreshed?.Invoke(this, EventArgs.Empty); return(result); }
public bool Contains(IExamSaver item) { bool result = examSavers.Contains(item); ListRefreshed?.Invoke(this, EventArgs.Empty); return(result); }
public bool Remove(IExamSaver item) { bool result = examSavers.Remove(item); ListRefreshed?.Invoke(this, EventArgs.Empty); return(result); }
private async void ViewDeleted(IStartView sender) { ExamsListService examsList = ExamsListService.GetInstance(); if (!await Task.Run(() => currentExamSaver.Delete())) { sender.ShowError("Не удалось удалить экзамен из его расположения.\nОн удален из списка."); } examsList.Remove(currentExamSaver); currentExamSaver = null; }
private void ViewConnected(IStartView sender) { currentExamSaver = null; ApplicationController.Run <LogInDbPresenter, object>(null); if (DatabaseService.GetInstance().ExamDatabaseWorker == null) { View.DbInfoText = "Не удалось подключится к базе данных."; } else { View.DbInfoText = "Подключение к базе данных установлено."; } }
private void ViewViewShown(IStartView sender) { sender.IsListLoading = true; currentExamSaver = null; sender.ExamSavers = ExamsListService.GetInstance().ExamSavers; sender.IsListLoading = false; SessionService sessionService = SessionService.GetInstance(); if (sessionService.Session != null) { sessionService.Session.Abort(); sessionService.Session = null; } }
private async void ViewSavedAs(IEditSavingView sender, SaveExamEventArgs e) { Exam exam = GetCheckedExam(); if (exam == null) { return; } IExamSaver loaded = null; ExamsListService examsList = ExamsListService.GetInstance(); try { loaded = new FileExamSaver(e.FilePath, exam.Password, exam.Name); int index = examsList.ExamSavers.IndexOf(loaded); if (index >= 0) { loaded = examsList.ExamSavers[index]; } } catch { } if (loaded == null) { loaded = new FileExamSaver(e.FilePath, exam.Password, exam.Name); } Argument.ExamSaver = loaded; if (await ApplicationController.Run <LoadingContextPresenter <bool>, Task <bool> >(Task.Run(() => Argument.ExamSaver.Save(exam))).GetTask()) { examsList.Add(loaded); IList <string> temp = View.Warnings; temp.Add("Сохранено!"); sender.Warnings = temp; sender.AllowSave = true; savingFailed = false; } else { sender.ShowError($"Непредвиденная ошибка сохранения.{ Environment.NewLine }Ошибка: {Argument.ExamSaver.LastExceptionMessage}"); } }
public IExamSaver[] GetExamSavers() { if (examDatabaseWorker == null) { return(new IExamSaver[0]); } try { Exam[] exams = examDatabaseWorker.GetUnfilledExams(); IExamSaver[] examSavers = new IExamSaver[exams.Length]; for (int i = 0; i < exams.Length; i++) { examSavers[i] = new DatabaseExamSaver(examDatabaseWorker.GetIdentifier(exams[i]).Value, exams[i].Name); } return(examSavers); } catch { examDatabaseWorker.Dispose(); return(new IExamSaver[0]); } }
private async void ViewFileOpened(IImportView sender, OpenExamEventArgs e) { Exam exam = null; IExamSaver loaded = null; ExamsListService examsList = ExamsListService.GetInstance(); try { loaded = new FileExamSaver(e.FilePath, e.Password, sender.CurrentExamSaver.SaverName); int index = examsList.ExamSavers.IndexOf(loaded); if (index >= 0) { sender.CurrentExamSaver = examsList.ExamSavers[index]; currentExamSaver = examsList.ExamSavers[index]; return; } } catch { } loaded = new FileExamSaver(e.FilePath, e.Password, ""); exam = await Task.Run(() => loaded.GetExam()); if (exam != null) { loaded = new FileExamSaver(e.FilePath, e.Password, exam.Name); examsList.Add(loaded); List <Question> questions = new List <Question>(); for (int i = 0; i < exam.Tickets.Count; i++) { questions.AddRange(exam.Tickets[i].GetQuestions()); } sender.Questions = questions; currentExamSaver = loaded; } else { sender.ShowError($"Не удалось открыть экзамен.{ Environment.NewLine }Ошибка: { loaded.LastExceptionMessage }"); } }
public EditArgumnet(IExamSaver examSaver, ExamBuilder examBuilder) { ExamBuilder = examBuilder; ExamSaver = examSaver; }
public void Add(IExamSaver item) { examSavers.Add(item); ListRefreshed?.Invoke(this, EventArgs.Empty); }
public StartSessionArgument(Exam exam, IExamSaver examSaver) { Exam = exam; ExamSaver = examSaver; }