示例#1
0
        void TestingForm_LoadComplete(object sender, EventArgs e)
        {
            RemoteTestingProvider provider = (RemoteTestingProvider)Session[SESSIONPROVIDER];

            if (!String.IsNullOrEmpty(provider.WarningMessageContent))
            {
                warningMessage.Text    = provider.WarningMessageContent;
                warningMessage.Visible = true;
            }
            securityAlert.Visible      = provider.ShowSecurityAlert;
            secondComputerAddress.Text = provider.SecondComputerAddress;
        }
示例#2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            this.LoadComplete     += new EventHandler(TestingForm_LoadComplete);
            warningMessage.Visible = false;
            RemoteTestingProvider provider    = null;
            StartTestParams       startParams = LocalUser.TestClient.GetNotCommitedSessions(0, false);

            if (Session[SESSIONPROVIDER] == null)
            {
                if (startParams == null)
                {
                    Response.Redirect("~/Default.aspx");
                }
                var testSettings = startParams.TestSettings;
                TestorData.CoreTestsRow coreTest     = testSettings.CoreTests[0];
                TestorTreeItem          selectedTest = new TestorTreeItem(0, coreTest.TestId, coreTest.TestName,
                                                                          coreTest.IsMasterTest ? TestorItemType.MasterTest : TestorItemType.Test, null);
                provider = new RemoteTestingProvider(LocalUser.WebServerProvider, selectedTest, testSettings, startParams, false);
                provider.ProviderMode    = ProviderMode.WebMode;
                Session[SESSIONPROVIDER] = provider;
            }
            else
            {
                provider = (RemoteTestingProvider)Session[SESSIONPROVIDER];
                if (provider == null || provider.State == ProviderState.Results)
                {
                    Session[SESSIONPROVIDER] = null;
                    if (LocalUser.IsIntranet && provider.CurrentUser.UserRole == TestorUserRole.Student)
                    {
                        FormsAuthentication.SignOut();
                    }
                    Response.Redirect("~/Default.aspx");
                }
                provider.UnsubscribeWarningMessage();
            }
            provider.CurrentUniqId = (string)Session["UniqId"];
            if (startParams != null && startParams.AdditionalTime.HasValue)
            {
                provider.AdditionalTime = startParams.AdditionalTime.Value;
            }
            if (!IsPostBack)
            {
                string testName = String.Format("«{0}»", provider.TestName);
                (this.Master.FindControl("LabelTest") as Label).Text = testName + " :: <i>" + provider.StudentDisplayName + "</i>";
                this.Title = String.Format("Студент - \"{0}\"", provider.StudentDisplayName);
            }
            TestingHost.InitTestingProcess(provider, ClientScript);
        }
示例#3
0
        protected void postButton_Click(object sender, EventArgs e)
        {
            if (postButton.Attributes[BUTTON_VALUE] == NULL_VALUE || postButton.Attributes[BUTTON_MODE] == NTMODE_VALUE)
            {
                return;
            }
            if (postButton.Attributes[BUTTON_MODE] != TESTING_VALUE)
            {
                return;
            }
            RemoteTestingProvider provider = new RemoteTestingProvider(LocalUser.WebServerProvider, _currentItem, _currentTest, null, false);

            provider.StartTest();
            Session["UniqId"] = provider.UniqId;
            Response.Redirect("~/Testing.aspx");
        }
示例#4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (LocalUser.IsIntranet && !Context.User.Identity.IsAuthenticated)
            {
                Response.Redirect("~/Login.aspx");
            }
            StartTestParams ncs = LocalUser.TestClient.GetNotCommitedSessions(0, false);

            if (ncs != null)
            {
                Server.Transfer("~/Testing.aspx");
            }
            MultiViewMain.ActiveViewIndex = 0;
            LabelTestname.Visible         = false;
            requirementsPanel.Visible     = false;
            if (Context.User.Identity.IsAuthenticated)
            {
                var currentUser = LocalUser.SecurityProvider.CurrentUser;
                if (currentUser == null)
                {
                    FormsAuthentication.SignOut();
                    Response.Redirect("~/Login.aspx");
                }
                string userName = String.Format(":: {0} {1} {2}", HtmlStore.GetString(currentUser.LastName),
                                                HtmlStore.GetString(currentUser.FirstName), HtmlStore.GetString(currentUser.SecondName));
                Label lbl = (this.Master.FindControl("userName") as Label);
                if (String.IsNullOrEmpty(userName.Trim()))
                {
                    lbl.Text = currentUser.Login;
                }
                else
                {
                    lbl.Text = userName;
                }
            }
            if (InitPageMode())
            {
                InitTree();
            }
            else
            {
                InitTestList();
                InitNavigator();
                if (_currentItem.ItemType == TestorItemType.Test ||
                    _currentItem.ItemType == TestorItemType.MasterTest)
                {
                    MultiViewMain.ActiveViewIndex = 2;
                    postButton.Text = "Приступить к тестированию";
                    _currentTest    = DataCompressor.DecompressData <TestorData>(
                        LocalUser.TestEdit.GetTestSettings(_currentItem.TestId.Value));
                    testDetails.Text = HttpHandler.GetPreTestingHtml(_currentTest.CoreTests[0]);
                    TestorData.CoreTestsRow test = _currentTest.CoreTests[0];
                    LabelTestname.Visible = true;
                    RemoteTestingProvider _provider = new RemoteTestingProvider(LocalUser.WebServerProvider, _currentItem,
                                                                                _currentTest, null, false);
                    if (!_provider.IsTestActive)
                    {
                        postButton.Enabled      = false;
                        LabelTestname.ForeColor = Color.Red;
                        LabelTestname.Text      = _provider.NotActiveMessage;
                        if (_provider.RequirementsTests != null)
                        {
                            postButton.Enabled              = false;
                            LabelTestname.Text              = "Перед прохлждением данного теста необходимо пройти предыдущие тесты";
                            LabelTestname.ForeColor         = Color.Red;
                            requirementsPanel.Visible       = true;
                            requirementsRepeater.DataSource = _provider.RequirementsTests;
                            requirementsRepeater.DataBind();
                        }
                        return;
                    }
                    if (LocalUser.SecurityProvider.CurrentUser.UserRole == TestorUserRole.Administrator ||
                        LocalUser.SecurityProvider.CurrentUser.UserRole == TestorUserRole.Teacher ||
                        LocalUser.SecurityProvider.CurrentUser.UserRole == TestorUserRole.Laboratorian)
                    {
                        LabelTestname.Text = String.Format("Тест: <a href=\"/Manage/Statistics.aspx?testId={0}\">{1}</a>", _currentItem.TestId, _currentItem.ItemName.Trim());
                    }
                    else
                    {
                        LabelTestname.Text = String.Format("Тест: \"{0}\"", _currentItem.ItemName.Trim());
                    }
                    if (postButton.Attributes[BUTTON_MODE] == NULL_VALUE)
                    {
                        postButton.Attributes[BUTTON_MODE] = NTMODE_VALUE;
                    }
                    else
                    {
                        postButton.Attributes[BUTTON_MODE] = TESTING_VALUE;
                    }
                    postButton.Attributes[BUTTON_VALUE] = _currentItem.ItemId.ToString();
                }
            }
        }
示例#5
0
 private void buttonOK_Click(object sender, EventArgs e)
 {
     _password = textBoxPassword.Text;
     if (!IsTeacherMode)
     {
         if (_resultUser == null)
         {
             MessageBox.Show("Для начала тестирования необходимо выбрать пользователя.",
                             "Выбор пользователя", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             return;
         }
         SetChildEnable(false);
         StaticServerProvider.Logout();
         LoginProvider loginProvider = LoginProvider.Login(_resultUser.Login, textBoxPassword.Text, LoginHelper.Server, LoginHelper.SEND_TIMEOUT, null,
                                                           new LoginProvider.LoginResultDelegate((hasPassword, errorMessage) =>
         {
             this.Invoke((Action)(() =>
             {
                 if (hasPassword)
                 {
                     if (String.IsNullOrEmpty(LoginHelper.Server))
                     {
                         string[] databases = StaticServerProvider.TestClient.GetDatabaseNamesList();
                         if (databases.Length > 0)
                         {
                             string dbPassword = StaticServerProvider.TestClient.GetDatabasePassword(databases[0]);
                             using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(String.Format(
                                                                                                                           "Data Source=(local);Initial Catalog={0};User ID=testingUser;Password={1}", databases[0], dbPassword)))
                             {
                                 System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("EXEC InitDbSettings;", conn);
                                 conn.Open();
                                 cmd.ExecuteNonQuery();
                                 conn.Close();
                                 Console.WriteLine(cmd.ExecuteScalar());
                             }
                         }
                     }
                     StartTestParams ncs = StaticServerProvider.TestClient.GetNotCommitedSessions(_resultUser.UserId, false);
                     TestorData testSettings = null;
                     if (ncs == null)
                     {
                         SelectSingleItemForm selectTest = new SelectSingleItemForm(_resultUser, TestingServerItemType.ActiveTestTree);
                         if (selectTest.ShowDialog() != DialogResult.OK)
                         {
                             textBoxPassword.Text = String.Empty;
                             StaticServerProvider.Logout();
                             LoginHelper.AnonymousLogin();
                             SetChildEnable(true);
                             return;
                         }
                         _selectedTest = selectTest.SelectedItem;
                         if (_selectedTest == null || _selectedTest.ItemType != TestorItemType.Test &&
                             _selectedTest.ItemType != TestorItemType.MasterTest)
                         {
                             MessageBox.Show("Для начала тестирования необходимо выбрать тест.",
                                             "Выбор теста", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                             _selectedTest = null;
                             StaticServerProvider.Logout();
                             LoginHelper.AnonymousLogin();
                             SetChildEnable(true);
                             return;
                         }
                         testSettings = selectTest.TestSettings;
                     }
                     else
                     {
                         testSettings = ncs.TestSettings;
                         TestorData.CoreTestsRow coreTest = testSettings.CoreTests[0];
                         _selectedTest = new TestorTreeItem(0, coreTest.TestId, coreTest.TestName,
                                                            coreTest.IsMasterTest ? TestorItemType.MasterTest : TestorItemType.Test, null);
                     }
                     RemoteTestingProvider provider = new RemoteTestingProvider(null, _selectedTest,
                                                                                testSettings, ncs, true);
                     TestForm testForm = new TestForm(provider);
                     testForm.ShowDialog();
                     comboBoxUserType_SelectedIndexChanged(sender, e);
                     StaticServerProvider.Logout();
                     LoginHelper.AnonymousLogin();
                     SetChildEnable(true);
                 }
                 else
                 {
                     SystemMessage.ShowServerErrorMessage(errorMessage);
                     textBoxPassword.Text = String.Empty;
                     StaticServerProvider.Logout();
                     LoginHelper.AnonymousLogin();
                     SetChildEnable(true);
                     return;
                 }
             }));
         }));
     }
     else
     {
         SetFormEnableMode(false);
         _userName = textBoxStudentName.Text;
         StaticServerProvider.Logout();
         LoginProvider loginProvider = LoginProvider.Login(_userName, _password, LoginHelper.Server, LoginHelper.SEND_TIMEOUT, null,
                                                           new LoginProvider.LoginResultDelegate((hasPassword, errorMessage) =>
         {
             this.Invoke((Action)(() =>
             {
                 SetFormEnableMode(true);
                 if (hasPassword)
                 {
                     StatisticsForm statistics = new StatisticsForm(false);
                     statistics.MdiParent = this.MdiParent;
                     statistics.Dock = DockStyle.Fill;
                     statistics.ControlBox = false;
                     statistics.Show();
                     comboBoxUserType.SelectedIndex = 0;
                     textBoxStudentName.Focus();
                     SetChildEnable(true);
                 }
                 else
                 {
                     SystemMessage.ShowServerErrorMessage(errorMessage);
                     StaticServerProvider.Logout();
                     LoginHelper.AnonymousLogin();
                     SetChildEnable(true);
                     return;
                 }
             }));
         }));
     }
 }