private void DoubleClickAccountViolation(Point point) { try { int id = _dgvMain.GetID(); if (id == 0) { return; } Violation violation = ViolationList.getInstance().getItem(id); string columnName = _dgvCar.Columns[point.X].HeaderText; if (((_dgvCar.Columns[point.X].HeaderText == "№ постановления") || (_dgvCar.Columns[point.X].HeaderText == "Сумма штрафа")) && (!string.IsNullOrEmpty(violation.File))) { WorkWithFiles.openFile(violation.File); } else if ((_dgvCar.Columns[point.X].HeaderText == "Согласование") && (!violation.Agreed)) { if (violation.File == string.Empty) { throw new NotImplementedException("Для согласования необходимо прикрепить скан копию счёта"); } else if ((User.GetRole() == RolesList.Boss) || (User.GetRole() == RolesList.Adminstrator)) { violation.Agree(); loadCars(); } else { throw new AccessViolationException("Вы не имеете прав на выполнение этой операции"); } } else if (DGVSpecialColumn.CanInclude(columnName)) { _myFilter.SetFilterValue(string.Concat(columnName, ":"), point); } else { Violation_AddEdit violationAE = new Violation_AddEdit(violation); if (violationAE.ShowDialog() == DialogResult.OK) { loadCars(); } } } catch (NotImplementedException ex) { MessageBox.Show(ex.Message, "Ошибка отправки", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (NullReferenceException ex) { MessageBox.Show(ex.Message, "Ошибка отправки", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (AccessViolationException ex) { MessageBox.Show(ex.Message, "Ошибка доступа", MessageBoxButtons.OK, MessageBoxIcon.Error); } }