Exemple #1
0
 private void LoadExamsList(IImportView view)
 {
     view.IsListLoading = true;
     currentExamSaver   = null;
     view.ExamSavers    = ExamsListService.GetInstance().ExamSavers;
     view.IsListLoading = false;
 }
Exemple #2
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 #3
0
        private void ViewViewShown(IImportView sender)
        {
            DatabaseService databaseService = DatabaseService.GetInstance();

            if (databaseService.ExamDatabaseWorker == null)
            {
                sender.DbInfoText = "Не удалось подключится к базе данных.";
            }
            else
            {
                sender.DbInfoText = "Подключение к базе данных установлено.";
            }
        }
Exemple #4
0
        private void ViewSearched(IImportView sender)
        {
            List <Question> questions = new List <Question>();

            for (int i = 0; i < sender.Questions.Count; i++)
            {
                if (sender.Questions[i].ToString().Contains(sender.SearchText))
                {
                    questions.Add(sender.Questions[i]);
                }
            }
            sender.Questions = questions;
        }
Exemple #5
0
        public ImportPresenter(IImportView view, IApplicationController applicationController) : base(view, applicationController)
        {
            view.ViewShown           += ViewViewShown;
            view.ConnectionAsked     += ViewConnectionAsked;
            view.FileOpened          += ViewFileOpened;
            view.Searched            += ViewSearched;
            view.SelectedExamChanged += ViewSelectedExamChanged;
            view.Imported            += ViewImported;
            ExamsListService examsList = ExamsListService.GetInstance();

            examsList.ListRefreshed += ExamsListListRefreshed;
            DatabaseService databaseService = DatabaseService.GetInstance();

            databaseService.ConnctionEstablished += DatabaseServiceConnctionEstablished;
            databaseService.ConnctionLosted      += DatabaseServiceConnctionLosted;
        }
Exemple #6
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 #7
0
 private void ViewImported(IImportView sender)
 {
     Argument(sender.CurrentQuestion);
     View.Close();
 }
Exemple #8
0
 private void ViewConnectionAsked(IImportView sender)
 {
     sender.DbInfoText = "Не удалось подключится к базе данных.";
     ApplicationController.Run <LogInDbPresenter, object>(null);
     LoadExamsList(sender);
 }
 public ImportPresenter(IImportView importView)
 {
     this.importView             = importView;
     using WaitDialog waitDialog = new WaitDialog(Initialize);
     waitDialog.ShowDialog();
 }