Exemplo n.º 1
0
        public void Update(CP entity)
        {
            using (var _connection = new SQLiteConnection(connectionString))
                using (var cmd = new SQLiteCommand(_connection))
                {
                    _connection.Open();
                    if (entity != null)
                    {
                        var _idGroup = this.GetIdGroupForCP(entity.GroupName);
                        cmd.Parameters.AddWithValue("@Id", WorkWithDB.GetIdCp(entity.Name, _idGroup, entity.NameDiscipline, entity.TermName));
                        cmd.Parameters.AddWithValue("@Name", entity.Name);
                        cmd.Parameters.AddWithValue("@From", entity.From);
                        cmd.Parameters.AddWithValue("@To", entity.To);
                        cmd.Parameters.AddWithValue("@TermId", entity.TermId);
                        cmd.Parameters.AddWithValue("@WeightKT", entity.WeightKT);
                        cmd.Parameters.AddWithValue("@WeightLab", entity.WeightLab);
                        cmd.Parameters.AddWithValue("@WeightLek", entity.WeightLek);
                        cmd.Parameters.AddWithValue("@WeightPrac", entity.WeightPrac);
                        cmd.Parameters.AddWithValue("@WeightMore", entity.WeightMore);
                        cmd.Parameters.AddWithValue("@GroupId", this.GetIdGroupForCP(entity.GroupName));
                        cmd.Parameters.AddWithValue("@CountLek", entity.CountLek);
                        cmd.Parameters.AddWithValue("@CountLab", entity.CountLab);
                        cmd.Parameters.AddWithValue("@CountPrac", entity.CountPrac);

                        cmd.CommandText = "UPDATE CP SET weight_lab = @WeightLab, weight_lek = @WeightLek, " +
                                          "weight_prac = @WeightPrac, weight_more = @WeightMore, weight_kt = @WeightKT, " +
                                          "countLek = @CountLek, countLab = @CountLab, countPrac = @CountPrac WHERE id = @Id";
                        cmd.ExecuteNonQuery();
                    }
                }
        }
        private async void Button3_Click(object sender, EventArgs e)
        {
            _logger.Info("Нажата кнопка '{0}'", button3.Text);
            try
            {
                await Task.Factory.StartNew(() =>
                {
                    InvokeUI(() =>
                    {
                        listStatementLine.Clear();

                        var reposStudent = RepositoryFactory <Student> .Create();

                        this.comboBoxListGroups.SelectedIndexChanged += new EventHandler(ComboboxListGroup_SelectedIndexChanged);

                        var _idGroup = reposStudent.GetIdGroupForStudent(GroupName);
                        var _idCp    = WorkWithDB.GetIdCp(CpName, _idGroup, DisciplineName, TermName);

                        var _cp = reposCP.Get(_idCp);

                        if (_idCp != 0 && _cp.DisciplineId == WorkWithDB.GetDisciplineId(DisciplineName))
                        {
                            foreach (var item in StatementLine.GetListStatementLine(_idCp, WorkWithDB.GetDisciplineId(DisciplineName),
                                                                                    Convert.ToInt32(reposGroup.GetIdGroupDisciplineGroup(GroupName)), WorkWithDB.GetIdTermForCp(TermName)).AsParallel())
                            {
                                listStatementLine.Add(item);
                            }
                            var repCp = reposCP.Get(_idCp);

                            tbCountLek.Text  = Convert.ToString(repCp.CountLek);
                            tbCountLab.Text  = Convert.ToString(repCp.CountLab);
                            tbCountPrac.Text = Convert.ToString(repCp.CountPrac);

                            ShowInformationAboutCp(_idCp);
                            _logger.Info("Информация загружена.");
                        }
                        else if (_idCp == 0)
                        {
                            _logger.Debug("Не удалось получить id контрольной точки!");
                        }
                        else
                        {
                            MessageBox.Show($"Для данной группы отсутствует '{CpName}' точка!");
                            _logger.Info("Данные не были загружены, так как у группы {0} отсутствует {1} точка по дисциплине {2} в семестре {3}",
                                         GroupName, CpName, DisciplineName, TermName);
                        }
                    });
                });
            }
            catch (Exception ex)
            {
                _logger.Error("Произошла ошибка ({0}) при загрузке записей", ex.Message);
            }
        }
Exemplo n.º 3
0
        private async void button3_Click(object sender, EventArgs e)
        {
            await Task.Factory.StartNew(() =>
            {
                InvokeUI(() =>
                {
                    listStatementLine.Clear();

                    var reposStudent = RepositoryFactory <Student> .Create();

                    this.comboBoxListGroups.SelectedIndexChanged += new EventHandler(comboboxListGroup_SelectedIndexChanged);

                    var _idGroup = reposStudent.GetIdGroupForStudent(GroupName);
                    var _idCp    = WorkWithDB.GetIdCp(CpName, _idGroup, DisciplineName, TermName);

                    var _cp = reposCP.Get(_idCp);

                    if (_idCp != 0 && _cp.DisciplineId == WorkWithDB.GetDisciplineId(DisciplineName))
                    {
                        foreach (var item in StatementLine.GetListStatementLine(_idCp, WorkWithDB.GetDisciplineId(DisciplineName),
                                                                                Convert.ToInt32(reposGroup.GetIdGroupDisciplineGroup(GroupName)), WorkWithDB.GetIdTermForCp(TermName)).AsParallel())
                        {
                            listStatementLine.Add(item);
                        }
                        var repCp = reposCP.Get(_idCp);

                        tbCountLek.Text  = Convert.ToString(repCp.CountLek);
                        tbCountLab.Text  = Convert.ToString(repCp.CountLab);
                        tbCountPrac.Text = Convert.ToString(repCp.CountPrac);

                        ShowInformationAboutCp(_idCp);
                    }
                    else
                    {
                        MessageBox.Show($"Для данной группы отсутствует '{CpName}' точка!");
                    }
                });
            });
        }
Exemplo n.º 4
0
        private async void btnCloseTurn_Click(object sender, EventArgs e)
        {
            try
            {
                await Task.Factory.StartNew(() =>
                {
                    InvokeUI(() =>
                    {
                        var nameTypeWorkCColumnIndex = dataGridView1.CurrentCell.ColumnIndex;

                        var nameStudent = dataGridView1.CurrentCell.RowIndex;

                        string typeWorkName = Convert.ToString(dataGridView1.Columns[nameTypeWorkCColumnIndex].HeaderText);

                        string columnName = Convert.ToString(dataGridView1.Columns[nameTypeWorkCColumnIndex].Name);

                        dataGridView2.Visible = false;
                        var idGroup           = reposStud.GetIdGroupForStudent(GroupName);
                        foreach (var item in listTurn.AsParallel())
                        {
                            if (item.Point != 0 && item.Name != String.Empty && item.NameStudent != String.Empty)
                            {
                                var _idTurn = WorkWithDB.GetIdTurn(new Turn(Convert.ToInt32(reposStud.GetIdStudent(item.NameStudent)),
                                                                            WorkWithDB.GetDisciplineId(DisciplineName),
                                                                            Convert.ToInt32(WorkWithDB.GetIdCp(CpName, idGroup, DisciplineName, TermName)),
                                                                            typeWorkName, item.Point, item.Name));
                                if (_idTurn == -1)
                                {
                                    reposTurn.Add(new Turn(Convert.ToInt32(reposStud.GetIdStudent(item.NameStudent)),
                                                           WorkWithDB.GetDisciplineId(DisciplineName),
                                                           Convert.ToInt32(WorkWithDB.GetIdCp(CpName, idGroup, DisciplineName, TermName)),
                                                           typeWorkName, item.Point, item.Name));
                                }
                                else
                                {
                                    reposTurn.Update(new Turn(Convert.ToInt32(reposStud.GetIdStudent(item.NameStudent)),
                                                              WorkWithDB.GetDisciplineId(DisciplineName),
                                                              Convert.ToInt32(WorkWithDB.GetIdCp(CpName, idGroup, DisciplineName, TermName)),
                                                              typeWorkName, item.Point, item.Name));
                                }
                            }
                        }

                        var listWork = new List <Work>();

                        foreach (var itemTurn in listTurn.AsParallel())
                        {
                            listWork.Add(new Work(itemTurn.Name, itemTurn.Point));
                        }

                        dataGridView1[columnName, nameStudent].Value = CalcPointForCp.CalcScoreLabOrPrac(listWork); // Считаем виды работ, в которых есть разворот
                        dataGridView1.ReadOnly = false;
                        calcul();
                        listWork.Clear();
                        listTurn.Clear();
                    });
                });
            }
            catch
            {
                dataGridView1.ReadOnly = false;
                dataGridView2.Visible  = false;
            }
        }
Exemplo n.º 5
0
        private async void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                var sum = Convert.ToInt32(tbWeghtMore.Text) + Convert.ToInt32(tbWeightLab.Text) +
                          Convert.ToInt32(tbWeightLek.Text) + Convert.ToInt32(tbWeightPrac.Text);
                if (sum > 100)
                {
                    MessageBox.Show("Проверьте веса видов работ!");
                    tbWeightLek.BackColor  = Color.Red;
                    tbWeightLab.BackColor  = new Color(/* Color [Red] */);
                    tbWeightPrac.BackColor = Color.Red;
                    tbWeghtMore.BackColor  = Color.Red;
                }

                UpCp();
                await Task.Factory.StartNew(() =>
                {
                    InvokeUI(() =>
                    {
                        var reposCpDataGeneral = RepositoryFactory <CPDataGeneral> .Create();
                        var _listCpData        = reposCpDataGeneral.GetAll().AsParallel();
                        var reposStudent       = RepositoryFactory <Student> .Create();
                        var _listStudentFromDb = reposStudent.GetAllStudentForGroup(GroupName);
                        var _idGroup           = reposStudent.GetIdGroupForStudent(GroupName);
                        var _idCp = WorkWithDB.GetIdCp(CpName, _idGroup, DisciplineName, TermName);

                        List <CPDataGeneral> listDataGeneral = new List <CPDataGeneral>();
                        List <Student> listStudent           = new List <Student>();
                        List <Student> listStudentUpdate     = new List <Student>();

                        var IsBool = listStatementLine.AsParallel().Any(t => t.FIO == "");

                        if (IsBool == false)
                        {
                            foreach (var item in listStatementLine.AsParallel())
                            {
                                listDataGeneral.Add(new CPDataGeneral(item.PointGeneral, item.FIO, DisciplineName, _idCp, 3, item.PointForLab,
                                                                      Convert.ToInt32(item.PointForLek), item.PointForPrac, item.PointForMore));
                            }

                            foreach (var itemDataGeneral in listDataGeneral.AsParallel())
                            {
                                var bl = _listCpData.Any(t => t.StudentId == reposStudent.GetIdStudent(itemDataGeneral.StudentName) &&
                                                         t.DisciplineId == WorkWithDB.GetDisciplineId(DisciplineName) &&
                                                         t.CpId == WorkWithDB.GetIdCp(CpName, _idGroup, DisciplineName, TermName));
                                if (bl)
                                {
                                    reposCpDataGeneral.Update(itemDataGeneral);
                                    continue;
                                }
                                else
                                {
                                    reposCpDataGeneral.Add(itemDataGeneral);
                                    continue;
                                }
                            }
                            MessageBox.Show("Данные успешно сохранены!");
                            listDataGeneral.Clear();
                            _listCpData = null;
                        }
                        else
                        {
                            MessageBox.Show("Проверьте заполнение поля 'ФИО' в введенных записях!");
                        }
                    });
                });
            }
            catch
            {
                MessageBox.Show("Недостаточно данных!");
            }
        }