Ejemplo n.º 1
0
        public FormSettings()
        {
            InitializeComponent();
            _parameters           = new DynamicParams();
            Port.Text             = _parameters.Get().Port.ToString();
            TestDirectory.Text    = _parameters.Get().TestPath;
            IpAddress.Text        = _parameters.Get().IpAdress;
            resultsDirectory.Text = _parameters.Get().ResultsPath;


            this.MinimumSize = this.Size;
            this.MaximumSize = this.Size;
        }
Ejemplo n.º 2
0
        public void deleteCheckedResults()
        {
            foreach (Control ctrl in panelWithCourses.Controls)
            {
                if (ctrl is CheckBox)
                {
                    if (((CheckBox)ctrl).Checked)
                    {
                        ResultsData.Get().RemoveAll(p => p.Course == ctrl.Text);
                        DirectoryInfo diTests = new DirectoryInfo(_parameters.Get().ResultsPath + @"\Тестирование\" + ctrl.Text);
                        DirectoryInfo diStudy = new DirectoryInfo(_parameters.Get().ResultsPath + @"\Обучение\" + ctrl.Text);

                        if (!diTests.Exists || !diStudy.Exists)
                        {
                            continue;
                        }

                        foreach (FileInfo file in diTests.GetFiles())
                        {
                            file.Delete();
                        }
                        foreach (DirectoryInfo dir in diTests.GetDirectories())
                        {
                            dir.Delete(true);
                        }
                        foreach (FileInfo file in diStudy.GetFiles())
                        {
                            file.Delete();
                        }
                        foreach (DirectoryInfo dir in diStudy.GetDirectories())
                        {
                            dir.Delete(true);
                        }
                    }
                }
            }

            File.WriteAllText(Resources.ResultsData, JsonConvert.SerializeObject(ResultsData.Get()));
            MessageBox.Show("Результаты удалены", "Успех!");
        }
Ejemplo n.º 3
0
        private void загрузитьТестыСФлешкиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var parameters = new DynamicParams();

            using (var fbd = new FolderBrowserDialog())
            {
                DialogResult result = fbd.ShowDialog();

                if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath))
                {
                    var dirForBackup = fbd.SelectedPath;
                    var fromDir      = parameters.Get().TestPath;
                    if (!Directory.Exists(fromDir))
                    {
                        MessageBox.Show("В настройках не указан путь к папке с тестами для сохранения или такой папки не существует", "Ошибка сохранения тестов", MessageBoxButtons.OK);
                        return;
                    }

                    CopyDir(dirForBackup, fromDir);

                    MessageBox.Show("Тесты успешно загружены", "Успешно загружено", MessageBoxButtons.OK);
                }
            }
        }
Ejemplo n.º 4
0
        private void сохранитьРезультатыИТестыНаФлешкуToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var parameters = new DynamicParams();

            using (var fbd = new FolderBrowserDialog())
            {
                DialogResult result = fbd.ShowDialog();

                if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath))
                {
                    var dirForBackup = fbd.SelectedPath + "/Результаты тестирования";
                    var fromDir      = parameters.Get().ResultsPath;
                    if (!Directory.Exists(fromDir))
                    {
                        MessageBox.Show("В настройках не указан путь к папке с результатами или такой папки не существует", "Ошибка сохранения результатов", MessageBoxButtons.OK);
                        return;
                    }

                    CopyDir(fromDir, dirForBackup);

                    MessageBox.Show("Файлы с результатами успешно сохранены", "Успешно сохранено", MessageBoxButtons.OK);
                }
            }
        }
Ejemplo n.º 5
0
        private void Listen()
        {
            var ipPoint = new IPEndPoint(IPAddress.Parse(_parameters.Get().IpAdress), _parameters.Get().Port);

            var socket    = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            var filenames = new List <ObjectInfo>();

            socket.Bind(ipPoint);

            socket.Listen(40);

            while (true)
            {
                try
                {
                    var handler = socket.Accept();

                    var builder = new StringBuilder();

                    var data = new byte[256];

                    do
                    {
                        var bytes = handler.Receive(data);
                        builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
                    } while (handler.Available > 0);

                    string response = builder.ToString();
                    switch (response)
                    {
                    case "Test connect":
                    {
                        handler.Send(Encoding.Unicode.GetBytes("OK"));
                        break;
                    }

                    case "Update":
                    {
                        if (_editable)
                        {
                            handler.Send(Encoding.Unicode.GetBytes("Occupied"));
                        }
                        _editable = true;
                        filenames.Clear();
                        var directoryInfo = new DirectoryInfo(_parameters.Get().TestPath);
                        foreach (var test in directoryInfo.GetFiles("*.test"))
                        {
                            filenames.Add(new ObjectInfo {
                                    FileName = test.Name, Length = test.Length, LastUpdate = test.LastWriteTime
                                });
                        }

                        var pictures = new DirectoryInfo(_parameters.Get().TestPath + "\\picture");
                        foreach (var picture in pictures.GetFiles("*.bin"))
                        {
                            filenames.Add(new ObjectInfo
                                {
                                    FileName = "\\picture\\" + picture.Name,
                                    Length   = picture.Length
                                });
                        }

                        var json = JsonConvert.SerializeObject(filenames);
                        handler.Send(Encoding.Unicode.GetBytes(json));
                        break;
                    }

                    default:
                    {
                        int index;
                        if (Int32.TryParse(response, out index))
                        {
                            handler.SendFile(_parameters.Get().TestPath + "\\" + filenames[index].FileName);
                        }
                        else
                        {
                            if (response == "Close")
                            {
                                _editable = false;
                                break;
                            }
                            _form.AddResult(builder.ToString());
                        }

                        break;
                    }
                    }

                    handler.Shutdown(SocketShutdown.Both);
                    handler.Close();
                }
                catch (Exception)
                {
                    // ignored
                }
            }
        }
Ejemplo n.º 6
0
        public void saveResults()
        {
            listColumns       = new Dictionary <string, string> {
            };
            dicCourses        = new Dictionary <string, List <Result> > {
            };
            docnameAndResults = new Dictionary <string, List <DataGridViewRow> > {
            };

            foreach (Result res in ResultsData.Get())
            {
                if (res.ResultType != _typeRes1)
                {
                    continue;
                }
                if (!dicCourses.ContainsKey(res.Course))
                {
                    dicCourses.Add(res.Course, new List <Result> {
                    });
                }
                dicCourses[res.Course].Add(res);
            }

            //Коллекция для создания заголовков
            listColumns.Add("Course", "Предмет");
            listColumns.Add("TestName", "Название Теста");
            listColumns.Add("Platoon", "Взвод");
            listColumns.Add("StudentName", "ФИО");
            listColumns.Add("Mark", "Результат");
            listColumns.Add("Timestamp", "Дата");


            foreach (KeyValuePair <string, List <Result> > keyValue in dicCourses)
            {
                docnameAndResults.Clear();
                var wrongSymbols = "/\\<>:?\"|*";
                //Создаем папку под каждый предмет
                string courseDir = _parameters.Get().ResultsPath + @"\" + new string(_typeRes2.Where(c => !wrongSymbols.Contains(c)).ToArray()) + @"\" + new string(keyValue.Key.Where(c => !wrongSymbols.Contains(c)).ToArray());


                if (!Directory.Exists(courseDir))
                {
                    Directory.CreateDirectory(courseDir);
                }

                //Создание таблицы, которую вставим в Word
                DataGridView tempTable = new DataGridView();

                //Добаляем заголовочную строку таблице
                foreach (KeyValuePair <string, string> courseNameAndText in listColumns)
                {
                    var column = new DataGridViewColumn
                    {
                        HeaderText   = courseNameAndText.Value,
                        Name         = courseNameAndText.Key,
                        CellTemplate = new DataGridViewTextBoxCell()
                    };
                    tempTable.Columns.Add(column);
                }

                //Создание мапы <взвод - название теста> в конкретном предмете
                foreach (Result res in keyValue.Value)
                {
                    string name = res.Platoon + "взвод. " + res.TestName;
                    if (!docnameAndResults.ContainsKey(name))
                    {
                        docnameAndResults.Add(name, new List <DataGridViewRow> {
                        });
                    }


                    DataGridViewRow rowForInsert = new DataGridViewRow();
                    rowForInsert.CreateCells(_testsTable);
                    rowForInsert.Cells[0].Value = res.Course;
                    rowForInsert.Cells[1].Value = res.TestName;
                    rowForInsert.Cells[2].Value = res.Platoon;
                    rowForInsert.Cells[3].Value = res.StudentName;
                    rowForInsert.Cells[4].Value = res.Mark;
                    rowForInsert.Cells[5].Value = res.Timestamp;



                    docnameAndResults[name].Add(rowForInsert);
                }

                foreach (var keyValueDocAndRows in docnameAndResults)
                {
                    tempTable.Rows.Clear();
                    foreach (DataGridViewRow rowTemp in keyValueDocAndRows.Value)
                    {
                        DataGridViewRow rowForInsert = new DataGridViewRow();
                        rowForInsert = (DataGridViewRow)rowTemp.Clone();

                        int intColIndex = 0;
                        foreach (DataGridViewCell cell in rowTemp.Cells)
                        {
                            rowForInsert.Cells[intColIndex].Value = cell.Value;
                            intColIndex++;
                        }

                        tempTable.Rows.Add(rowForInsert);
                    }

                    ws.Export_Data_To_Word(tempTable, courseDir + @"\" + new string(keyValueDocAndRows.Key.Where(c => !wrongSymbols.Contains(c)).ToArray()) + ".doc");
                }
            }
        }