Пример #1
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;
            }
        }