Exemple #1
0
        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;
                }
            }
        }
Exemple #2
0
        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;
                }
            }
        }
Exemple #3
0
 private void LoadExamsList(IImportView view)
 {
     view.IsListLoading = true;
     currentExamSaver   = null;
     view.ExamSavers    = ExamsListService.GetInstance().ExamSavers;
     view.IsListLoading = false;
 }
Exemple #4
0
        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);
        }
Exemple #8
0
        private async void ViewDeleted(IStartView sender)
        {
            ExamsListService examsList = ExamsListService.GetInstance();

            if (!await Task.Run(() => currentExamSaver.Delete()))
            {
                sender.ShowError("Не удалось удалить экзамен из его расположения.\nОн удален из списка.");
            }
            examsList.Remove(currentExamSaver);
            currentExamSaver = null;
        }
Exemple #9
0
 private void ViewConnected(IStartView sender)
 {
     currentExamSaver = null;
     ApplicationController.Run <LogInDbPresenter, object>(null);
     if (DatabaseService.GetInstance().ExamDatabaseWorker == null)
     {
         View.DbInfoText = "Не удалось подключится к базе данных.";
     }
     else
     {
         View.DbInfoText = "Подключение к базе данных установлено.";
     }
 }
Exemple #10
0
        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;
            }
        }
Exemple #11
0
        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]);
     }
 }
Exemple #13
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 }");
            }
        }
Exemple #14
0
 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;
 }