private async void calcul() { for (int i = 0; i < listStatementLine.Count; i++) { int poinLek = Convert.ToInt32(dataGridView1["ColumnPointLek", i].Value); await Task.Factory.StartNew(() => { if (poinLek > Convert.ToInt32(tbCountLek.Text)) { dataGridView1["ColumnAllPoint", i].Value = CalcPointForCp.CalcScoreGeneral(Convert.ToInt32(tbWeightLek.Text), Convert.ToInt32(tbWeightLab.Text), Convert.ToInt32(tbWeightPrac.Text), Convert.ToInt32(tbWeghtMore.Text), Convert.ToInt32(dataGridView1["ColumnPointLek", i].Value), Convert.ToInt32(dataGridView1["ColumnPointLab", i].Value), Convert.ToInt32(dataGridView1["ColumnPointPrac", i].Value), Convert.ToInt32(dataGridView1["ColumnPointMore", i].Value)); } else { dataGridView1["ColumnPointLek", i].Value = CalcPointForCp.Calc(Convert.ToInt32(tbCountLek.Text), Convert.ToInt32(dataGridView1["ColumnPointLek", i].Value)); dataGridView1["ColumnAllPoint", i].Value = CalcPointForCp.CalcScoreGeneral(Convert.ToInt32(tbWeightLek.Text), Convert.ToInt32(tbWeightLab.Text), Convert.ToInt32(tbWeightPrac.Text), Convert.ToInt32(tbWeghtMore.Text), Convert.ToInt32(dataGridView1["ColumnPointLek", i].Value), Convert.ToInt32(dataGridView1["ColumnPointLab", i].Value), Convert.ToInt32(dataGridView1["ColumnPointPrac", i].Value), Convert.ToInt32(dataGridView1["ColumnPointMore", i].Value)); } }); } }
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; } }