示例#1
0
        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);
            }
        }