public List<Agente> ListarTodos()
 {
     List<Agente> agentesEncontrado = null;
     agentesEncontrado = new List<Agente>();
     string sql = "select RazonSocial, Ruc, Direccion, CorreoAgente, NroCuentaInterbancaria from agente";
     using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
     {
         con.Open();
         using (SqlCommand com = new SqlCommand(sql, con))
         {
             using (SqlDataReader resultado = com.ExecuteReader())
             {
                 while (resultado.Read())
                 {
                     Agente agenteEncontrado = new Agente()
                     {
                         RazonSocial = (string)resultado["RazonSocial"],
                         RUC = (string)resultado["Ruc"],
                         Direccion = (string)resultado["Direccion"],
                         CorreoAgente = (string)resultado["CorreoAgente"],
                         //CorreoAgente = (string)resultado["CorreoAgente"],
                     };
                     agentesEncontrado.Add(agenteEncontrado);
                 }
             }
         }
     }
     return agentesEncontrado;
 }
 public void Eliminar(Agente agenteAEliminar)
 {
     string sql = "DELETE FROM agente WHERE ruc=@ruc";
     using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
     {
         con.Open();
         using (SqlCommand com = new SqlCommand(sql, con))
         {
             com.Parameters.Add(new SqlParameter("@ruc", agenteAEliminar.RUC));
             com.ExecuteNonQuery();
         }
     }
 }
 public Agente Modificar(Agente agenteAModificar)
 {
     Agente agenteModificado = null;
     string sql = "UPDATE Agente SET RazonSocial=@razonsocial, Direccion=@direccion, CorreoAgente=@correoagente, NroCuentaInterbancaria=@nrocta  WHERE ruc=@ruc";
     using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
     {
         con.Open();
         using (SqlCommand com = new SqlCommand(sql, con))
         {
             com.Parameters.Add(new SqlParameter("@ruc", agenteAModificar.RUC));
             com.Parameters.Add(new SqlParameter("@razonsocial", agenteAModificar.RazonSocial));
             com.Parameters.Add(new SqlParameter("@correoagente", agenteAModificar.CorreoAgente));
             com.Parameters.Add(new SqlParameter("@direccion", agenteAModificar.Direccion));
             com.Parameters.Add(new SqlParameter("@nrocta", agenteAModificar.NroCuentaInterbancaria));
             com.ExecuteNonQuery();
         }
     }
     agenteModificado = Obtener(agenteAModificar.RUC);
     return agenteModificado;
 }
 public Agente Crear(Agente AgenteACrear)
 {
     Agente agenteCreado = null;
     string sql = "insert into Agente (RazonSocial, RUC, CorreoAgente, Direccion, NroCuentaInterbancaria ) " +
             "values (@razonsocial, @ruc, @correoagente, @direccion, @nrocta)";
     using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
     {
         con.Open();
         using (SqlCommand com = new SqlCommand(sql, con))
         {
             com.Parameters.Add(new SqlParameter("@razonsocial", AgenteACrear.RazonSocial));
             com.Parameters.Add(new SqlParameter("@ruc", AgenteACrear.RUC));
             com.Parameters.Add(new SqlParameter("@correoagente", AgenteACrear.CorreoAgente));
             com.Parameters.Add(new SqlParameter("@direccion", AgenteACrear.Direccion));
             com.Parameters.Add(new SqlParameter("@nrocta", AgenteACrear.NroCuentaInterbancaria));
             com.ExecuteNonQuery();
         }
     }
     agenteCreado = Obtener(AgenteACrear.RUC);
     return agenteCreado;
 }
        public Agente CrearAgente(Agente agenteACrear)
        {
            //esta primera parte valida si e ha ingresado algun campo vacío
            //para nuestro caso, deben ingresarse todos, sino, sale error
            if (agenteACrear.RUC.Equals("") || agenteACrear.RazonSocial.Equals("") || agenteACrear.Direccion.Equals("") || agenteACrear.CorreoAgente.Equals("") || agenteACrear.NroCuentaInterbancaria.Equals(""))
                throw new WebFaultException<Error>(
                    new Error()
                    {
                        CodigoNegocio = "Error1",
                        MensajeNegocio = "Se requiere el ingreso de todos los datos"
                    },
                    HttpStatusCode.BadRequest);

            // validamos si el ruc ingresado es correcto
            //uso una Funciones que coloqué en la clase decimal funciones
            if (Funciones.ValidaRUC(agenteACrear.RUC.Trim()) == false)
                throw new WebFaultException<Error>(
                    new Error()
                    {
                        CodigoNegocio = "Error2",
                        MensajeNegocio = "RUC no valido"
                    },
                    HttpStatusCode.InternalServerError);

            // validamos si el correo ingresado es uno correcto
            //uso una Funciones que coloqué en la clase decimal funciones
            if (Funciones.es_email(agenteACrear.CorreoAgente.Trim()) == false)
                throw new WebFaultException<Error>(
                    new Error()
                    {
                        CodigoNegocio = "Error3",
                        MensajeNegocio = "El correo es incorrecto."
                    },
                    HttpStatusCode.InternalServerError);

            //ahora validamnos si el agente ya existe por su RUC
            Agente existe = ObtenerAgente(agenteACrear.RUC);
            if (existe != null)
                throw new WebFaultException<Error>(
                    new Error()
                    {
                        CodigoNegocio = "Error4",
                        MensajeNegocio = "El Agente " + agenteACrear.RUC + " ya existe !!!!!"
                    },
                    HttpStatusCode.InternalServerError);

            //ahora validamnos si el correo ya esta registrado en la DB
            Agente existecorreo = ObtenerCorreo(agenteACrear.CorreoAgente);
            if (existecorreo != null)
                throw new WebFaultException<Error>(
                    new Error()
                    {
                        CodigoNegocio = "Error5",
                        MensajeNegocio = "El Correo " + agenteACrear.CorreoAgente + " ya existe !!!!!"
                    },
                    HttpStatusCode.InternalServerError);

            // validamos si el CCI ingresado es correcto deben ser numeros y 20 digitos
            if (Funciones.ValidaCCI(agenteACrear.NroCuentaInterbancaria.Trim()) == false)
                throw new WebFaultException<Error>(
                    new Error()
                    {
                        CodigoNegocio = "Error6",
                        MensajeNegocio = "Cuenta Interbancaria no valido"
                    },
                    HttpStatusCode.InternalServerError);

            return dao.Crear(agenteACrear);
        }
 public Agente ModificarAgente(Agente agenteAModificar)
 {
     return dao.Modificar(agenteAModificar);
 }
 public Agente ObtenerCorreo(string correo)
 {
     Agente correoCreado = null;
     string sql = "select Razonsocial, Ruc, Direccion, CorreoAgente, NroCuentaInterbancaria from Agente where correoagente=@correoagente";
     using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
     {
         con.Open();
         using (SqlCommand com = new SqlCommand(sql, con))
         {
             com.Parameters.Add(new SqlParameter("@correoagente", correo));
             using (SqlDataReader resultado = com.ExecuteReader())
             {
                 if (resultado.Read())
                 {
                     correoCreado = new Agente()
                     {
                         RazonSocial = (string)resultado["RazonSocial"],
                         RUC = (string)resultado["Ruc"],
                         Direccion = (string)resultado["Direccion"],
                         CorreoAgente = (string)resultado["CorreoAgente"],
                         NroCuentaInterbancaria = (string)resultado["NroCuentaInterbancaria"],
                     };
                 }
             }
         }
     }
     return correoCreado;
 }