/// <summary>
        /// lista todos las reglas
        /// </summary>
        /// <returns></returns>
        public List <AmarreReglaInfo> ListReglas(string campana)
        {
            db.SetParameterValue(commandAmarres, "i_operation", 'S');
            db.SetParameterValue(commandAmarres, "i_option", '1');
            db.SetParameterValue(commandAmarres, "i_campana", campana);

            List <AmarreReglaInfo> col = new List <AmarreReglaInfo>();

            IDataReader dr = null;

            AmarreReglaInfo m = null;

            try
            {
                dr = db.ExecuteReader(commandAmarres);

                while (dr.Read())
                {
                    m = Factory.getAmarreRegla(dr);

                    col.Add(m);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                bool rethrow = ExceptionPolicy.HandleException(ex, "DataAccess Policy");

                if (rethrow)
                {
                    throw;
                }
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
            }

            return(col);
        }
        /// <summary>
        /// actualiza una regla amarre
        /// </summary>
        /// <param name="item"></param>
        public int UpdateRegla(AmarreReglaInfo item, string usuario)
        {
            int id = 1;

            IDataReader dr = null;

            try
            {
                db.SetParameterValue(commandAmarres, "i_operation", 'U');
                db.SetParameterValue(commandAmarres, "i_option", 'B');

                db.SetParameterValue(commandAmarres, "i_id", item.Id);
                db.SetParameterValue(commandAmarres, "i_campana", item.Campana);
                db.SetParameterValue(commandAmarres, "i_estado", item.Estado);
                db.SetParameterValue(commandAmarres, "i_valormin", item.Valormin);
                db.SetParameterValue(commandAmarres, "i_valormax", item.Valormax);
                db.SetParameterValue(commandAmarres, "i_porvalor", item.Porvalor);
                db.SetParameterValue(commandAmarres, "i_porfecha", item.Porfecha);
                db.SetParameterValue(commandAmarres, "i_fechaini", item.Fechaini);
                db.SetParameterValue(commandAmarres, "i_fechafin", item.Fechafin);
                db.SetParameterValue(commandAmarres, "i_tipoamarre", item.Tipoamarre);
                db.SetParameterValue(commandAmarres, "i_tipoamarrepremio", item.Tipoamarrepremio);
                db.SetParameterValue(commandAmarres, "i_usuario", usuario);
                db.SetParameterValue(commandAmarres, "i_descripcion", item.Descripcion);


                dr = db.ExecuteReader(commandAmarres);

                //-----------------------------------------------------------------------------------------------------------------------------
                //Guardar auditoria
                try
                {
                    Auditoria     objAuditoria     = new Auditoria("conexion");
                    AuditoriaInfo objAuditoriaInfo = new AuditoriaInfo();

                    objAuditoriaInfo.FechaSistema = DateTime.Now;
                    objAuditoriaInfo.Usuario      = usuario;
                    objAuditoriaInfo.Proceso      = "Se realizó edicion de una regla Amarre.  Id:" + item.Id + ",. Acción Realizada por el Usuario: " + usuario;

                    objAuditoria.Insert(objAuditoriaInfo);
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error Auditoria: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));
                }
                //-----------------------------------------------------------------------------------------------------------------------------
            }
            catch (Exception ex)
            {
                id = 0;

                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                bool rethrow = ExceptionPolicy.HandleException(ex, "DataAccess Policy");

                if (rethrow)
                {
                    throw;
                }
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
            }
            return(id);
        }