Exemple #1
0
 private void toolStripTextBoxSearch_Enter(object sender, EventArgs e)
 {
     if (SystemStateManager.TestState())
     {
         return;
     }
 }
Exemple #2
0
        private void toolStripButtonAdd_Click(object sender, EventArgs e)
        {
            if (SystemStateManager.TestState())
            {
                return;
            }
            string groupName = treeView.Nodes[0].Text;

            if (treeView.SelectedNode != null)
            {
                groupName = treeView.SelectedNode.Text;
            }
            CreateTreeForm ctf = new CreateTreeForm("Группы:",
                                                    String.Format("Добавить группы в '{0}'", groupName));

            ctf.ShowDialog();
            if (ctf.DialogResult != DialogResult.OK)
            {
                return;
            }
            int parentId = 0;

            if (treeView.SelectedNode != null)
            {
                parentId = (treeView.SelectedNode.Tag as TestorTagItem).TreeItem.ItemId;
            }
            treeView.AddGroups(parentId, ctf.TestorItems);
        }
        public void SelectGroup()
        {
            TestorTreeItem group = SelectedGroup;

            if (SystemStateManager.TestState())
            {
                return;
            }
            SelectSingleItemForm selectGroup = new SelectSingleItemForm(TestingServerItemType.GroupTree);

            if (selectGroup.ShowDialog() == DialogResult.Cancel)
            {
                SelectedGroup = new TestorTreeItem(0, 0, String.Empty, TestorItemType.Group, null);
                if (group.ItemId != SelectedGroup.ItemId)
                {
                    OnSelectedGroupChanged();
                }
                return;
            }
            this.SelectedGroup = selectGroup.SelectedItem;
            if (this.SelectedGroup == null)
            {
                this.CurrentBindingSource.DataSource = _users;
                this.SelectedGroup = new TestorTreeItem(0, 0, String.Empty, TestorItemType.Group, null);
            }
            if (group.ItemId != SelectedGroup.ItemId)
            {
                this.CurrentBindingSource.CurrencyManager.Refresh();
                OnSelectedGroupChanged();
            }
        }
Exemple #4
0
        public void AddUser()
        {
            SynchronizationContext context = SynchronizationContext.Current;

            SystemStateManager.OnStateChanged(true);
            _currentThread = new Thread(new ThreadStart(() =>
            {
                try
                {
                    TestorCoreUser user = ResultUser;
                    if (!_isAlterMode)
                    {
                        _resultUser = StaticServerProvider.UserManagement.CreateUser(user);
                    }
                    else
                    {
                        StaticServerProvider.UserManagement.AlterUser(_resultUser, true);
                    }
                    context.Send(d =>
                    {
                        SystemStateManager.OnStateChanged(false);
                        this.DialogResult = DialogResult.OK;
                    }, null);
                }
                catch (Exception ex)
                {
                    context.Send(d =>
                    {
                        SystemMessage.ShowErrorMessage(d as Exception);
                        SystemStateManager.OnStateChanged(false);
                    }, ex);
                }
            }));
            _currentThread.Start();
        }
Exemple #5
0
 public void AddFolder()
 {
     TreeNode selectedNode = this.SelectedNode;
     InputBox ib = new InputBox("Создать папку", "Имя папки:");
     if (ib.ShowDialog() == DialogResult.OK)
     {
         SystemStateManager.OnStateChanged(true);
         SynchronizationContext context = SynchronizationContext.Current;
         _currentThread = new Thread(new ThreadStart(() =>
         {
             TestorTreeItem folder = StaticServerProvider.TestEdit.CreateFolder(_selectedItem.ItemId, ib.Input);
             folder.IsActive = true;
             TestorTagItem tagItem = new TestorTagItem(folder);
             context.Send(d =>
             {
                 TreeNode tn = new TreeNode(ib.Input)
                 {
                     Tag = tagItem
                 };
                 tn.ContextMenuStrip = _nodeContextMenu;
                 if (selectedNode != null)
                 {
                     selectedNode.Expand();
                     selectedNode.Nodes.Add(tn);
                 }
                 else
                     _rootNode.Nodes.Add(tn);
                 SystemStateManager.OnStateChanged(false);
             }, null);
         }));
         _currentThread.Start();
     }
 }
Exemple #6
0
 public void SendTests(TestorData testorData, List<int> groupIds)
 {
     SystemStateManager.OnStateChanged(true);
     TreeNode selectedNode = this.SelectedNode;
     SynchronizationContext context = SynchronizationContext.Current;
     _currentThread = new Thread(new ThreadStart(() =>
     {
         byte[] arr = DataCompressor.CompressData(testorData);
         try
         {
             TestorTreeItem[] newItems = StaticServerProvider.TestEdit.SendTests(arr,
                 _selectedItem.ItemId, groupIds.ToArray());
             foreach (var item in newItems)
                 item.ItemOwner = StaticServerProvider.CurrentUser.UserId;
             context.Send(d =>
             {
                 AddTreeNodes(newItems, selectedNode, false);
                 if (selectedNode != null)
                     selectedNode.Expand();
             }, null);
         }
         catch (Exception ex)
         {
             SystemMessage.ShowErrorMessage(ex);
         }
         finally
         {
             context.Send(d =>
             {
                 SystemStateManager.OnStateChanged(false);
             }, null);
         }
     }));
     _currentThread.Start();
 }
Exemple #7
0
 private void btnSubmit_Click(object sender, EventArgs e)
 {
     if (SystemStateManager.TestState())
     {
         return;
     }
     TestingHttpServer.Hid = Guid.NewGuid().ToString();
     if (webBrowser.Document.Forms.Count == 0)
     {
         return;
     }
     TestingHttpServer.AllowConnections = true;
     try
     {
         webBrowser.Document.Forms[0].Children["hid"].SetAttribute("value", TestingHttpServer.Hid);
         webBrowser.Document.Forms[0].InvokeMember("submit");
     }
     catch
     {
         foreach (HtmlElement form in webBrowser.Document.Forms)
         {
             GetChildElems(form.Children, form);
         }
     }
 }
Exemple #8
0
 public void ProcessTestGroups(int testId)
 {
     _rootNode.Checked = false;
     SystemStateManager.OnStateChanged(true);
     try
     {
         _groupIds = GetTestGroups(testId).OrderBy(c => c).ToArray();
         if ((this.TopLevelControl as Form).IsHandleCreated)
         {
             foreach (var node in _serverNodes)
             {
                 if (!_groupIds.Contains(node.Key))
                 {
                     if (node.Value.Checked)
                     {
                         node.Value.Checked = false;
                     }
                 }
                 else
                 {
                     if (!node.Value.Checked)
                     {
                         node.Value.Checked = true;
                     }
                 }
             }
             SystemStateManager.OnStateChanged(false);
         }
     }
     catch (Exception ex)
     {
         SystemMessage.Log(ex);
     }
 }
Exemple #9
0
 private void renameToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (SystemStateManager.TestState())
     {
         return;
     }
     treeView.RenameItem();
 }
Exemple #10
0
 private void tsbDelete_Click(object sender, EventArgs e)
 {
     if (SystemStateManager.TestState())
     {
         return;
     }
     treeView.RemoveItem();
 }
Exemple #11
0
 private void tsbAddFolder_Click(object sender, EventArgs e)
 {
     if (SystemStateManager.TestState())
     {
         return;
     }
     treeView.AddFolder();
 }
Exemple #12
0
 private void toolStripButtonRename_Click(object sender, EventArgs e)
 {
     if (SystemStateManager.TestState())
     {
         return;
     }
     treeView.RenameItem();
 }
Exemple #13
0
        private void tsbSend_Click(object sender, EventArgs e)
        {
            if (SystemStateManager.TestState())
            {
                return;
            }
            List <int> groupIds = new List <int>();

            tvGroups.GetGroupIds(null, groupIds);
            treeView.SendTests(_testorData, groupIds);
        }
Exemple #14
0
        private void toolStripButtonChange_Click(object sender, EventArgs e)
        {
            if (SystemStateManager.TestState())
            {
                return;
            }
            AddUserForm addUser = new AddUserForm(testorCoreUserDataGridView.SelectedUser);

            addUser.ShowDialog();
            testorCoreUserDataGridView.CurrentBindingSource.CurrencyManager.Refresh();
        }
Exemple #15
0
        private void toolStripButtonAddUser_Click(object sender, EventArgs e)
        {
            if (SystemStateManager.TestState())
            {
                return;
            }
            AddUserForm addUser = new AddUserForm();

            if (addUser.ShowDialog() == DialogResult.OK)
            {
                testorCoreUserDataGridView.AddUser(addUser.ResultUser);
                if (toolStripComboBoxRole.SelectedIndex == 0)
                {
                    testorCoreUserBindingNavigator.BindingSource.CurrencyManager.Refresh();
                }
            }
        }
Exemple #16
0
 public void SetTestSettings(TestorData testorData)
 {
     SystemStateManager.OnStateChanged(true);
     byte[] data = DataCompressor.CompressData(testorData);
     SynchronizationContext context = SynchronizationContext.Current;
     _currentThread = new Thread(new ThreadStart(() =>
     {
         StaticServerProvider.TestEdit.SetTestSettings(data);
         if ((this.TopLevelControl as Form).IsHandleCreated)
         {
             context.Send(d =>
                 {
                     SystemStateManager.OnStateChanged(false);
                 }, null);
         }
     }));
     _currentThread.Start();
 }
Exemple #17
0
        private void toolStripButtonDeleteUser_Click(object sender, EventArgs e)
        {
            if (SystemStateManager.TestState())
            {
                return;
            }
            var selUser = testorCoreUserDataGridView.SelectedUser;

            if (MessageBox.Show(String.Format("Вы действительно хотите удалить пользователя \"{0} {1} {2}\"?",
                                              selUser.LastName, selUser.FirstName, selUser.SecondName), "Удаление пользователя", MessageBoxButtons.YesNo,
                                MessageBoxIcon.Question) != DialogResult.Yes)
            {
                return;
            }
            SystemStateManager.OnStateChanged(true);
            _currentThread = new Thread(new ThreadStart(() =>
            {
                try
                {
                    StaticServerProvider.UserManagement.RemoveUser(testorCoreUserDataGridView.SelectedUser.UserId);
                    if ((this.TopLevelControl as Form).IsHandleCreated)
                    {
                        this.Invoke((Action)(() =>
                        {
                            testorCoreUserDataGridView.Rows.Remove(testorCoreUserDataGridView.SelectedRows[0]);
                            SystemStateManager.OnStateChanged(false);
                        }));
                    }
                }
                catch (Exception ex)
                {
                    if ((this.TopLevelControl as Form).IsHandleCreated)
                    {
                        this.Invoke((Action)(() =>
                        {
                            SystemMessage.ShowErrorMessage(ex);
                            SystemStateManager.OnStateChanged(false);
                        }));
                    }
                }
            }));
            _currentThread.Start();
        }
Exemple #18
0
        public AddUserForm(TestorCoreUser user)
            : this()
        {
            _isAlterMode                 = true;
            _resultUser                  = user;
            textBoxLastName.Text         = _resultUser.LastName;
            textBoxFirstName.Text        = _resultUser.FirstName;
            textBoxSecondName.Text       = _resultUser.SecondName;
            radioButtonMale.Checked      = _resultUser.Sex;
            radioButtonFemale.Checked    = !_resultUser.Sex;
            dateTimePickerBirthday.Value = _resultUser.Birthday >= dateTimePickerBirthday.MinDate ? _resultUser.Birthday : dateTimePickerBirthday.MinDate;
            textBoxStudNumber.Text       = _resultUser.StudNumber;
            SynchronizationContext context = SynchronizationContext.Current;

            SystemStateManager.OnStateChanged(true);
            _currentThread = new Thread(new ThreadStart(() =>
            {
                try
                {
                    _groups = StaticServerProvider.UserManagement.GetUserGroups(_resultUser.UserId);
                    context.Send(d =>
                    {
                        if (_groups.Length > 0)
                        {
                            _selectedGroup    = (d as TestorTreeItem[])[0];
                            textBoxGroup.Text = _selectedGroup.ItemName;
                        }
                        SystemStateManager.OnStateChanged(false);
                    }, _groups);
                }
                catch (Exception ex)
                {
                    context.Send(d =>
                    {
                        SystemMessage.ShowErrorMessage(d as Exception);
                        SystemStateManager.OnStateChanged(false);
                    }, ex);
                }
            }));
            _currentThread.Start();
            buttonSelectGroup.Enabled = !_isAlterMode;
        }
        private void buttonOK_Click(object sender, EventArgs e)
        {
            SynchronizationContext context = SynchronizationContext.Current;

            _user.UserRole = (TestorUserRole)comboBoxRole.SelectedIndex + 1;
            _user.Status   = (TestorUserStatus)comboBoxStatus.SelectedIndex;
            if (textBoxPassword1.Text != _defaultPassword || textBoxPassword2.Text != _defaultPassword)
            {
                if (textBoxPassword1.Text != textBoxPassword2.Text)
                {
                    SystemMessage.ShowWarningMessage("Пароли не совпадают.");
                    return;
                }
                else
                {
                    _user.Password = textBoxPassword1.Text;
                }
            }
            _user.UserGroups = _userGroups.ToArray();
            SystemStateManager.OnStateChanged(true);
            _currentThread = new Thread(new ThreadStart(() =>
            {
                try
                {
                    _user = StaticServerProvider.UserManagement.AlterUser(_user, true);
                    context.Send(d =>
                    {
                        SystemStateManager.OnStateChanged(false);
                        this.DialogResult = DialogResult.OK;
                    }, null);
                }
                catch (Exception ex)
                {
                    context.Send(d =>
                    {
                        SystemMessage.ShowErrorMessage(d as Exception);
                        SystemStateManager.OnStateChanged(false);
                    }, ex);
                }
            }));
            _currentThread.Start();
        }
Exemple #20
0
 private void btnExit_Click(object sender, EventArgs e)
 {
     if (SystemStateManager.TestState())
     {
         return;
     }
     if (_provider.State == ProviderState.Testing)
     {
         if (MessageBox.Show("Вы действительно хотите завершить тестирование?",
                             "Завершение тестирования", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
         {
             return;
         }
         EndTest();
         return;
     }
     if (this.Parent is Form)
     {
         (this.Parent as Form).Close();
     }
 }
        public UserAdditionalSettingsForm(TestorCoreUser user)
        {
            InitializeComponent();
            _user = new TestorCoreUser(user);
            SetAccessMode();
            _userGroups = new List <TestorTreeItem>();
            dataGridViewGroups.AutoGenerateColumns = false;
            comboBoxRole.SelectedIndex             = (int)_user.UserRole - 1;
            comboBoxStatus.SelectedIndex           = (int)_user.Status;
            textBoxUserName.DataBindings.Add("Text", _user, "Login", false);
            textBoxEmail.DataBindings.Add("Text", _user, "Email", false);
            textBoxPassword1.Text = _defaultPassword;
            textBoxPassword2.Text = _defaultPassword;
            SystemStateManager.OnStateChanged(true);
            SynchronizationContext context = SynchronizationContext.Current;

            _currentThread = new Thread(new ThreadStart(() =>
            {
                try
                {
                    _userGroups.AddRange(StaticServerProvider.UserManagement.GetUserGroups(_user.UserId));
                    context.Send(d =>
                    {
                        _bindingSource.DataSource     = _userGroups;
                        dataGridViewGroups.DataSource = _bindingSource;
                        SystemStateManager.OnStateChanged(false);
                    }, null);
                }
                catch (Exception ex)
                {
                    context.Send(d =>
                    {
                        SystemMessage.ShowErrorMessage(d as Exception);
                        SystemStateManager.OnStateChanged(false);
                    }, ex);
                }
            }));
            _currentThread.Start();
            SystemStateManager.StateChanged += new EventHandler <EventArgs>(SystemStateManager_StateChanged);
        }
Exemple #22
0
 public void GetUsers(TestorUserRole selectedRole, TestorUserStatus status, bool getRemoved)
 {
     if (SystemStateManager.TestState())
     {
         return;
     }
     this.CurrentBindingSource.DataSource = null;
     SystemStateManager.OnStateChanged(true);
     _currentThread = new Thread(new ThreadStart(() =>
     {
         try
         {
             _users.Clear();
             _users.InsertRange(0, DataCompressor.DecompressData <TestorCoreUser[]>(StaticServerProvider.UserManagement.FindUsers(
                                                                                        String.Empty, selectedRole, status, getRemoved,
                                                                                        this.SelectedGroup.ItemId, 0)));
             if ((this.TopLevelControl as Form).IsHandleCreated)
             {
                 this.Invoke((Action)(() =>
                 {
                     OnUsersGetted();
                     SystemStateManager.OnStateChanged(false);
                 }));
             }
         }
         catch (Exception ex)
         {
             if ((this.TopLevelControl as Form).IsHandleCreated)
             {
                 this.Invoke((Action)(() =>
                 {
                     SystemMessage.ShowErrorMessage(ex);
                     SystemStateManager.OnStateChanged(false);
                 }));
             }
         }
     }));
     _currentThread.Start();
 }
Exemple #23
0
        public void AddGroups(int parentId, TestorTreeItem[] groups)
        {
            TreeNode selectedNode = this.SelectedNode;

            SystemStateManager.OnStateChanged(true);
            SynchronizationContext context = SynchronizationContext.Current;

            _currentThread = new Thread(new ThreadStart(() =>
            {
                TestorTreeItem[] retValue = StaticServerProvider.TestEdit.AddGroups(parentId, groups);
                context.Send(d =>
                {
                    AddTreeNodes(retValue, this.SelectedNode, false);
                    if (selectedNode != null)
                    {
                        selectedNode.Expand();
                    }
                    SystemStateManager.OnStateChanged(false);
                }, null);
            }));
            _currentThread.Start();
        }
Exemple #24
0
 private void btnNext_Click(object sender, EventArgs e)
 {
     if (SystemStateManager.TestState())
     {
         return;
     }
     TestingHttpServer.AllowConnections = true;
     if (_provider.State == ProviderState.PreTesting)
     {
         webBrowser.Navigate(TestingHttpServer.GetUrl("start"));
     }
     else if (_provider.State == ProviderState.Testing)
     {
         webBrowser.Navigate(TestingHttpServer.BaseUrl);
     }
     else if (_provider.State == ProviderState.Results)
     {
         if (this.Parent is Form)
         {
             (this.Parent as Form).Close();
         }
     }
 }
Exemple #25
0
        private static StreamReader _sr; // Reads text back from CMD.exe

        private static IDocumentStore RamDocumentStore(bool injectData = true)
        {
            var documentStore = new DocumentStore {
                Url = "http://localhost:8080/"
            };

            documentStore.Conventions.FindIdentityProperty = prop => prop.Name == "Id";

            documentStore.Initialize();

            if (injectData)
            {
                using (var documentSession = documentStore.OpenSession())
                {
                    // if we have no roles, system is not configured, so run system setup
                    var roles = documentSession.Query <Role>().ToList();
                    if (roles.Count == 0)
                    {
                        var systemStateManager = new SystemStateManager(documentSession);

                        var setupSystemDataCommandHander = new SetupSystemDataCommandHandler(
                            documentStore,
                            documentSession,
                            systemStateManager
                            );

                        setupSystemDataCommandHander.Handle(new SetupSystemDataCommand());
                        documentSession.SaveChanges();
                    }
                }
            }

            IndexCreation.CreateIndexes(typeof(All_Groups).Assembly, documentStore);

            return(documentStore);
        }
Exemple #26
0
        private void ToolStripMenuItemAdditional_Click(object sender, EventArgs e)
        {
            if (SystemStateManager.TestState())
            {
                return;
            }
            var                        row          = testorCoreUserDataGridView.SelectedRows[0];
            TestorCoreUser             selUser      = testorCoreUserDataGridView.SelectedUser;
            TestorUserRole             role         = selUser.UserRole;
            TestorUserStatus           status       = selUser.Status;
            UserAdditionalSettingsForm settingsForm = new UserAdditionalSettingsForm(selUser);

            if (settingsForm.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            if (settingsForm.User.UserRole != role || (settingsForm.User.Status == TestorUserStatus.Removed && status != TestorUserStatus.Removed) ||
                (status == TestorUserStatus.Removed && settingsForm.User.Status != TestorUserStatus.Removed))
            {
                testorCoreUserDataGridView.Rows.Remove(row);
            }
            selUser.SetSettings(settingsForm.User);
            toolStripTextBoxSearch_TextChanged(this, new EventArgs());
        }
Exemple #27
0
        private void saveToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (SystemStateManager.TestState())
            {
                return;
            }

            if (treeView.SelectedItem.ItemType != TestorItemType.Test)
            {
                SystemMessage.ShowErrorMessage("Выберите тест.");
                return;
            }

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                HtmlStore[] store = DataCompressor.DecompressData <HtmlStore[]>(StaticServerProvider.TestEdit.GetTestHTML(treeView.SelectedItem.TestId.Value));

                StringBuilder sb = new StringBuilder();

                sb.Append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
                sb.Append("<html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/><title>Test</title></head><body>");

                int i = 0;
                foreach (var str in store)
                {
                    if (i != 0)
                    {
                        sb.Append("<br/>");
                    }
                    i++;
                    sb.Append(i.ToString() + ". ");
                    sb.Append(str.Html);
                    sb.Append("<br/>");
                    char cr = 'a';
                    foreach (var ans in str.SubItems)
                    {
                        sb.Append(cr.ToString() + ")");
                        if (ans.IsTrue)
                        {
                            sb.Append("!!!");
                        }
                        sb.Append(ans.Html);
                        sb.Append("<br/>");
                        cr++;
                    }
                }

                sb.Append("</body></html>");

                try
                {
                    FileInfo fi = new FileInfo(saveFileDialog.FileName);

                    DirectoryInfo di = Directory.CreateDirectory(Path.Combine(fi.Directory.FullName, fi.Name + "_files"));
                    foreach (var str in store)
                    {
                        foreach (var image in str.Images)
                        {
                            using (BinaryWriter bw = new BinaryWriter(File.Open(Path.Combine(di.FullName, image.Key.ToString() + ".png"), FileMode.Create)))
                            {
                                bw.Write(image.Value, 0, image.Value.Length);
                            }
                        }
                    }

                    using (TextWriter tw = new StreamWriter(File.Open(saveFileDialog.FileName, FileMode.Create)))
                    {
                        tw.Write(sb.ToString().Replace("#$", di.Name + "/").Replace("#%", "."));
                    }
                }
                catch (Exception ex)
                {
                    SystemMessage.ShowErrorMessage(ex.Message);
                }
            }
        }