コード例 #1
0
        private bool SaveMarks()
        {
            try
            {
                using (PriemEntities context = new PriemEntities())
                {
                    using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.RequiresNew))
                    {
                        string mark = null;

                        for (int i = 0; i < dgvMarks.Rows.Count; i++)
                        {
                            int  persNum = int.Parse(dgvMarks["Номер", i].Value.ToString());
                            Guid persId  = new Guid(dgvMarks["PersonId", i].Value.ToString());

                            if (dgvMarks["Баллы", i].Value != null)
                            {
                                mark = dgvMarks["Баллы", i].Value.ToString().Trim();
                            }

                            int?updatedMark;
                            int mrk;

                            if (string.IsNullOrEmpty(mark))
                            {
                                updatedMark = null;
                            }
                            else if (int.TryParse(mark, out mrk) && mrk >= 0 && mrk < 101)
                            {
                                updatedMark = mrk;
                            }
                            else
                            {
                                dgvMarks.CurrentCell = dgvMarks["Баллы", i];
                                WinFormsServ.Error(dgvMarks["Номер", i].Value.ToString() + ": неправильно введены данные");
                                return(false);
                            }

                            if (_isOral)
                            {
                                context.ExamsVedHistory_UpdateMarkOral(_vedId, persId, persNum, updatedMark);
                            }
                            else
                            {
                                context.ExamsVedHistory_UpdateMark(_vedId, persId, persNum, updatedMark);
                            }
                        }

                        transaction.Complete();
                        return(true);
                    }
                }
            }

            catch (Exception exc)
            {
                WinFormsServ.Error("Ошибка сохранения данных: \n" + exc.Message);
                return(false);
            }
        }