/// <summary> /// Создание экземпляра класса /// </summary> /// <param name="controller">Контроллер приложения</param> /// <param name="view">Представление предварительной настройки приложения</param> /// <param name="messageDialog">Механизм показа диалоговых сообщений</param> /// <param name="testsLoader">Загрузчик базы данных тестов</param> public PreloadPresenter (ApplicationController controller, IPreloadView view, IMessageDialog messageDialog, TestsLoader testsLoader) : base(controller, view) { _messageDialog = messageDialog; _testsLoader = testsLoader; }
/// <summary> /// Создание экземпляра класса /// </summary> /// <param name="controller">Контроллер приложения</param> /// <param name="view">Представление настроек приложения</param> /// <param name="messageDialog">Механизм показа диалоговых сообщений</param> /// <param name="waitingAnimation">Средство показа анимации ожидания</param> /// <param name="authentificator">Средство авторизации в системе Дневник</param> /// <param name="testsLoader">Загрузчик базы данных тестов</param> public SettingsPresenter (ApplicationController controller, ISettingsView view, IMessageDialog messageDialog, IWaitingAnimation waitingAnimation, DnevnikApiAuthentificator authentificator, TestsLoader testsLoader) : base(controller, view) { _messageDialog = messageDialog; _waitingAnimation = waitingAnimation; _dnevnikApiAuthentificator = authentificator; _testsLoader = testsLoader; view.UpdateTests += UpdateTests; view.TryLogInToDnevnik += TryLogInToDnevnik; view.LogOutFromDnevnik += LogOutFromDnevnik; }
public SessionConfiguration( IProjectClonesManager fileManager, TestsLoader testLoader, IFactory <AutoCreationController> autoCreationControllerFactory, IRootFactory <SessionController> sessionFactory, IWhiteSource whiteCache) { _testLoader = testLoader; _autoCreationControllerFactory = autoCreationControllerFactory; _sessionFactory = sessionFactory; _whiteCache = whiteCache; _originalFilesClone = fileManager.CreateClone("Mutants"); _testsClone = fileManager.CreateClone("Tests"); if (_originalFilesClone.IsIncomplete || _testsClone.IsIncomplete || _testsClone.Assemblies.Count == 0) { AssemblyLoadProblem = true; } }
public SessionConfiguration( IProjectClonesManager fileManager, TestsLoader testLoader, IFactory<AutoCreationController> autoCreationControllerFactory, IRootFactory<SessionController> sessionFactory, IWhiteSource whiteCache) { _testLoader = testLoader; _autoCreationControllerFactory = autoCreationControllerFactory; _sessionFactory = sessionFactory; _whiteCache = whiteCache; _originalFilesClone = fileManager.CreateClone("Mutants"); _testsClone = fileManager.CreateClone("Tests"); if (_originalFilesClone.IsIncomplete || _testsClone.IsIncomplete || _testsClone.Assemblies.Count == 0) { AssemblyLoadProblem = true; } }
public void StartTest() { testsInfo = TestsLoader.LoadTestsFromFile(@"Resources/Tasks.test"); if (randomizeTasks) { testsInfo = RandomizeArray(testsInfo); } if (testsArr != null) { for (int i = 0; i < testsArr.Length; i++) { testsArr[i].Dispose(); } } TestSelector.Items.Clear(); testsArr = new BaseTest[testsInfo.Length]; Padding singleAnswerPadding = new Padding(35, 0, 0, 0); Padding multyAnswerPadding = new Padding(80, 0, 0, 0); int imageBottomPadding = 55; for (int i = 0; i < testsArr.Length; i++) { TestInfo info = testsInfo[i]; switch (info.TestType) { case TestType.Text: TestText testText = new TestText(); testText.Parent = TestPanelHolder; testText.Size = TestPanelHolder.Size; TextBox textBox = new TextBox(); testText.AnswerBox = textBox; textBox.Parent = testText; textBox.Font = new Font(textBox.Font.FontFamily, 32); textBox.BackColor = Color.FromArgb(255, 4, 13, 21); textBox.ForeColor = Color.FromKnownColor(KnownColor.Control); textBox.TextAlign = HorizontalAlignment.Center; textBox.Width = 650; textBox.Anchor = AnchorStyles.Left; textBox.Left = (testText.Width - textBox.Width) / 2; textBox.Top = (testText.Height - textBox.Height) / 2; textBox.CharacterCasing = CharacterCasing.Upper; testsArr[i] = testText; break; case TestType.SingleAnswer: TestSingleAnswer testSingleAnswer = new TestSingleAnswer(); testSingleAnswer.Parent = TestPanelHolder; testSingleAnswer.Size = TestPanelHolder.Size; testSingleAnswer.LayoutPanel.Size = testSingleAnswer.Size; testSingleAnswer.RadioButtons = new RadioButton[info.Tasks.Length]; for (int x = 0; x < info.Tasks.Length; x++) { RadioButton button = new RadioButton(); testSingleAnswer.RadioButtons[x] = button; button.Parent = testSingleAnswer.LayoutPanel; button.ForeColor = Color.FromKnownColor(KnownColor.Control); button.Text = (x + 1) + ") " + info.Tasks[x]; button.Padding = singleAnswerPadding; button.Font = new Font(button.Font.FontFamily, 20); Size size = testSingleAnswer.LayoutPanel.Size; size.Width = size.Width / 2 - 9; size.Height = (size.Height / (int)Math.Ceiling(info.Tasks.Length * 0.5)) - 3; button.Size = size; } testsArr[i] = testSingleAnswer; break; case TestType.MultyAnswer: TestMultyAnswer testMultyAnswer = new TestMultyAnswer(); testMultyAnswer.Parent = TestPanelHolder; testMultyAnswer.Size = TestPanelHolder.Size; testMultyAnswer.LayoutPanel.Size = testMultyAnswer.Size; testMultyAnswer.CheckBoxes = new CheckBox[info.Tasks.Length]; testMultyAnswer.MultyAnswer = new string[info.Tasks.Length]; for (int x = 0; x < info.Tasks.Length; x++) { CheckBox checkBox = new CheckBox(); testMultyAnswer.CheckBoxes[x] = checkBox; checkBox.Parent = testMultyAnswer.LayoutPanel; checkBox.ForeColor = Color.FromKnownColor(KnownColor.Control); checkBox.Text = (x + 1) + ") " + info.Tasks[x]; checkBox.Padding = multyAnswerPadding; checkBox.Font = new Font(checkBox.Font.FontFamily, 20); Size size = testMultyAnswer.LayoutPanel.Size; size.Height = (size.Height / info.Tasks.Length) - 3; checkBox.Size = size; } testsArr[i] = testMultyAnswer; break; case TestType.Image: TestImage testImage = new TestImage(); testImage.Parent = TestPanelHolder; testImage.Size = TestPanelHolder.Size; testImage.LayoutPanel.Size = testImage.Size; testImage.RadioButtons = new RadioButton[info.Tasks.Length]; for (int x = 0; x < info.Tasks.Length; x++) { RadioButton button = new RadioButton(); testImage.RadioButtons[x] = button; button.Parent = testImage.LayoutPanel; button.ForeColor = Color.FromKnownColor(KnownColor.Control); button.Text = (x + 1) + ") " + info.Tasks[x]; button.Font = new Font(button.Font.FontFamily, 14); Size size = testImage.LayoutPanel.Size; size.Width = size.Width / 2 - 9; size.Height = (size.Height / (int)Math.Ceiling(info.Tasks.Length * 0.5)) - 3; button.Size = size; Padding padding = new Padding(button.Width / 2, button.Height - imageBottomPadding, 0, 0); button.Padding = padding; PictureBox picture = new PictureBox(); string picturePath = @"Resources/"; picturePath += info.Pictures[x]; picture.Image = Image.FromFile(picturePath); picture.Parent = button; picture.SizeMode = PictureBoxSizeMode.Zoom; int imageSideSize = button.Height - imageBottomPadding - 4; picture.Size = new Size(imageSideSize, imageSideSize); picture.Left = (button.Width / 2) - (imageSideSize / 2); picture.Top = 4; } testsArr[i] = testImage; break; case TestType.Connection: testsArr[i] = new TestConnection(); break; default: break; } testsArr[i].TestInfo = info; testsArr[i].Hide(); TestSelector.Items.Add((i + 1) + ") " + info.TestTitle); } selectedTask = 0; Question.Text = "Вопрос: " + testsInfo[selectedTask].TestTask; testsArr[selectedTask].Show(); }