Пример #1
0
        public Empresa Buscar(string rut)
        {
            SqlConnection conexion  = null;
            SqlDataReader drEmpresa = null;

            try
            {
                conexion = new SqlConnection(Conexion.Cnn);

                SqlCommand cmdBuscarEmpresa = new SqlCommand("BuscarEmpresa", conexion);
                cmdBuscarEmpresa.CommandType = CommandType.StoredProcedure;

                cmdBuscarEmpresa.Parameters.AddWithValue("@rut", rut);

                conexion.Open();

                drEmpresa = cmdBuscarEmpresa.ExecuteReader();

                Empresa empresa = null;

                if (drEmpresa.HasRows)
                {
                    List <Visita>   visitas = this.ListaVisitas(rut);
                    List <Telefono> tels    = PersistenciaTelefono.TelefonosDeEmpresa(rut);
                    drEmpresa.Read();
                    Ciudad    ciudad    = PersistenciaCiudad.GetInstancia().BuscarCiudadSinFiltro((string)drEmpresa["Departamento"], (string)drEmpresa["NombreCiudad"]);
                    Categoria categoria = PersistenciaCategoria.GetInstancia().BuscarCategoriaSinFiltro((string)drEmpresa["Categoria"]);
                    empresa = new Empresa(rut, (string)drEmpresa["Nombre"], (string)drEmpresa["Direccion"], tels, ciudad, categoria, visitas);
                }

                return(empresa);
            }

            catch (Exception ex)
            {
                throw new Exception("Error de DB: " + ex.Message);
            }

            finally
            {
                if (drEmpresa != null)
                {
                    drEmpresa.Close();
                }

                if (conexion != null)
                {
                    conexion.Close();
                }
            }
        }
Пример #2
0
        public List <Empresa> ListarXCiudadYCategoria(Ciudad pCiudad, Categoria pCategoria)
        {
            SqlConnection conexion   = null;
            SqlDataReader drEmpresas = null;

            try
            {
                conexion = new SqlConnection(Conexion.Cnn);

                SqlCommand cmdListarXCiudadYCategoria = new SqlCommand("ListarEmpresasXCiudadYCategoria", conexion);
                cmdListarXCiudadYCategoria.CommandType = CommandType.StoredProcedure;

                cmdListarXCiudadYCategoria.Parameters.AddWithValue("@ciudad", pCiudad.Nombre);
                cmdListarXCiudadYCategoria.Parameters.AddWithValue("@categoria", pCategoria.Identificador);

                conexion.Open();

                drEmpresas = cmdListarXCiudadYCategoria.ExecuteReader();

                List <Empresa> empresas = new List <Empresa>();

                if (drEmpresas.HasRows)
                {
                    while (drEmpresas.Read())
                    {
                        Empresa emp = new Empresa((string)drEmpresas["Rut"], (string)drEmpresas["Nombre"], (string)drEmpresas["Direccion"], PersistenciaTelefono.TelefonosDeEmpresa((string)drEmpresas["Rut"]), pCiudad, pCategoria, ListaVisitas((string)drEmpresas["Rut"]));

                        empresas.Add(emp);
                    }
                }

                return(empresas);
            }
            catch (Exception ex)
            {
                throw new Exception("Error de BD: " + ex.Message);
            }
            finally
            {
                if (drEmpresas != null)
                {
                    drEmpresas.Close();
                }
                if (conexion != null)
                {
                    conexion.Close();
                }
            }
        }
Пример #3
0
        public List <Empresa> Listar()
        {
            SqlConnection conexion   = null;
            SqlDataReader drEmpresas = null;

            try
            {
                conexion = new SqlConnection(Conexion.Cnn);

                SqlCommand cmdListarEmpresas = new SqlCommand("ListarEmpresas", conexion);
                cmdListarEmpresas.CommandType = CommandType.StoredProcedure;

                conexion.Open();

                drEmpresas = cmdListarEmpresas.ExecuteReader();

                List <Empresa> empresas = new List <Empresa>();

                if (drEmpresas.HasRows)
                {
                    while (drEmpresas.Read())
                    {
                        Categoria categoria = PersistenciaCategoria.GetInstancia().BuscarCategoriaSinFiltro((string)drEmpresas["Categoria"]);
                        Ciudad    ciudad    = PersistenciaCiudad.GetInstancia().BuscarCiudadSinFiltro((string)drEmpresas["Departamento"], (string)drEmpresas["NombreCiudad"]);
                        Empresa   emp       = new Empresa((string)drEmpresas["Rut"], (string)drEmpresas["Nombre"], (string)drEmpresas["Direccion"], PersistenciaTelefono.TelefonosDeEmpresa((string)drEmpresas["Rut"]), ciudad, categoria, ListaVisitas((string)drEmpresas["Rut"]));

                        empresas.Add(emp);
                    }
                }

                return(empresas);
            }
            catch (Exception ex)
            {
                throw new Exception("Error de BD: " + ex.Message);
            }
            finally
            {
                if (drEmpresas != null)
                {
                    drEmpresas.Close();
                }
                if (conexion != null)
                {
                    conexion.Close();
                }
            }
        }
Пример #4
0
        public void Agregar(Empresa empresa)
        {
            SqlConnection conexion = new SqlConnection(Conexion.Cnn);

            SqlCommand cmdAgregarEmpresa = new SqlCommand("AgregarEmpresa", conexion);

            cmdAgregarEmpresa.CommandType = CommandType.StoredProcedure;

            cmdAgregarEmpresa.Parameters.AddWithValue("@rut", empresa.Rut);
            cmdAgregarEmpresa.Parameters.AddWithValue("@nombre", empresa.Nombre);
            cmdAgregarEmpresa.Parameters.AddWithValue("@direccion", empresa.Direccion);
            cmdAgregarEmpresa.Parameters.AddWithValue("@categoria", empresa.Categoria.Identificador);
            cmdAgregarEmpresa.Parameters.AddWithValue("@departamento", empresa.Ciudad.CodDepto);
            cmdAgregarEmpresa.Parameters.AddWithValue("@nombreCiudad", empresa.Ciudad.Nombre);

            SqlParameter retorno = new SqlParameter("@retorno", SqlDbType.Int);

            retorno.Direction = ParameterDirection.ReturnValue;
            cmdAgregarEmpresa.Parameters.Add(retorno);

            SqlTransaction transaccion = null;

            try
            {
                conexion.Open();

                transaccion = conexion.BeginTransaction();

                cmdAgregarEmpresa.Transaction = transaccion;

                int filasAfectadas = cmdAgregarEmpresa.ExecuteNonQuery();

                if (filasAfectadas < 1)
                {
                    switch ((int)retorno.Value)
                    {
                    case 1:
                        throw new Exception("Ya existe una empresa con rut " + empresa.Rut);

                    case 2:
                        throw new Exception("No existe una categoría con ID " + empresa.Categoria.Identificador);

                    case 3:
                        throw new Exception("La ciudad no es correcta");

                    default:
                        throw new Exception("Error no especificado");
                    }
                }

                //persisto los teléfonos de la empresa

                foreach (Telefono telefono in empresa.Telefonos)
                {
                    PersistenciaTelefono.Agregar(telefono, empresa, transaccion);
                }

                transaccion.Commit();
            }
            catch (Exception ex)
            {
                transaccion.Rollback();

                throw new Exception("Error de DB: " + ex.Message);
            }
            finally
            {
                conexion.Close();
            }
        }