private bool UpdRuleInDb(int[] di, StampRule r)
 {
     return(Environment.StampChecksData.UpdStampRules(di, r));
 }
        public bool SetStampRules(int[] delIDs, int stampId, StampRule rule)
        {
            bool ret = false;

            using (var conn = new SqlConnection(connectionString))
                using (var cmd = new SqlCommand())
                {
                    cmd.Connection = conn;
                    conn.Open();
                    cmd.Transaction = conn.BeginTransaction();
                    try
                    {
                        if (delIDs != null && delIDs.Length > 0)
                        {
                            cmd.CommandText = "DELETE ПраваНаУстановкуШтампов WHERE КодПраваНаУстановкуШтампов IN (" +
                                              string.Join(", ", delIDs.Select(i => i.ToString()).ToArray()) + ")";
                            cmd.ExecuteNonQuery();
                        }

                        if (stampId > 0 && rule != null)
                        {
                            cmd.CommandText = "INSERT ПраваНаУстановкуШтампов(" + idField +
                                              ", КодСотрудника, КодТипаДокумента, КодЛица) VALUES(@Id, @UserId, @DocType, @PersId)";

                            cmd.Parameters.Add("@Id", SqlDbType.Int).Value     = stampId;
                            cmd.Parameters.Add("@UserId", SqlDbType.Int).Value = rule.UserId;
                            SqlParameter paramDocType = cmd.Parameters.Add("@DocType", SqlDbType.Int);
                            SqlParameter paramPersId  = cmd.Parameters.Add("@PersId", SqlDbType.Int);

                            if (rule.DocTypeID > 0)
                            {
                                paramDocType.Value = rule.DocTypeID;
                            }
                            else
                            {
                                paramDocType.Value = DBNull.Value;
                            }
                            if (rule.OrganizationID > 0)
                            {
                                paramPersId.Value = rule.OrganizationID;
                            }
                            else
                            {
                                paramPersId.Value = DBNull.Value;
                            }

                            cmd.ExecuteNonQuery();
                        }

                        cmd.Transaction.Commit();
                        ret = true;
                    }
                    catch (SqlException sqlEx)
                    {
                        if (cmd.Transaction != null)
                        {
                            cmd.Transaction.Rollback();
                        }
                        ProcessSqlEx(sqlEx, cmd, "StampChecksDALC", false);
                    }
                    catch (InvalidOperationException ioEx)
                    {
                        if (cmd.Transaction != null)
                        {
                            cmd.Transaction.Rollback();
                        }
                        ErrorMessage(false, ioEx, null, "StampChecksDALC", false);
                    }
                    catch (Exception ex)
                    {
                        if (cmd.Transaction != null)
                        {
                            cmd.Transaction.Rollback();
                        }
                        ErrorMessage(false, ex, null, "StampChecksDALC");
                    }
                    finally
                    {
                        cmd.Connection.Close();
                    }
                }
            return(ret);
        }
 private bool AddRuleToDb(int[] di, StampRule r)
 {
     return(Environment.StampChecksData.SetStampRules(di, stampID, r));
 }