public Core.LogicaNegocio.Entidades.Empleado ConsultarId(Core.LogicaNegocio.Entidades.Empleado empleado)
 {
     try
     {
         SqlParameter[] arParms = new SqlParameter[1];
         Direccion dir = new Direccion();
         // Parametros
         arParms[0] = new SqlParameter("@id", SqlDbType.Int);
         arParms[0].Value = empleado.Id;
         DbDataReader reader = SqlHelper.ExecuteReader(GetConnection(),"ConsultarNomEmpleadoCedula",arParms);
         if(reader.Read())
         {
             empleado.Cedula = (int)reader["CIEmpleado"];
             empleado.Nombre = (string)reader["Nombre"];
             empleado.Apellido = (string)reader["Apellido"];
             empleado.Cuenta = (string)reader["NumCuenta"];
             empleado.FechaNacimiento = (DateTime)reader["FechaNac"];
             empleado.Estado = (string)reader["Estado"];
             empleado.Cargo = reader["IdCargo"].ToString();
             empleado.SueldoBase = (float)reader["Sueldo"];
         }
         arParms = new SqlParameter[1];
         arParms[0] = new SqlParameter("@idEmpleado", SqlDbType.Int);
         arParms[0].Value = empleado.Id;
         reader = SqlHelper.ExecuteReader(GetConnection(),"ConsultarDireccionEmpleado",arParms);
         if(reader.Read())
         {
             dir.Avenida = (string)reader["Avenida"];
             dir.Calle = (string)reader["Calle"];
             dir.Ciudad = (string)reader["Ciudad"];
             dir.Edif_Casa = (string)reader["EdifCasa"];
             dir.Piso_apto = (string)reader["PisoApto"];
             dir.Urbanizacion = (string)reader["Urbanizacion"];
         }
         empleado.Direccion = dir;
     }
     catch(SqlException e)
     {
         throw new Exception(e.ToString());
     }
     return empleado;
 }
        public void InsertarDireccion(Core.LogicaNegocio.Entidades.Empleado empleado, int id)
        {
            Direccion direccion = new Direccion();

            try
            {

                SqlParameter[] arParms = new SqlParameter[7];

                arParms[0] = new SqlParameter("@id", SqlDbType.Int);

                arParms[0].Value = id;

                arParms[1] = new SqlParameter("@avenida", SqlDbType.VarChar);

                arParms[1].Value = empleado.Direccion.Avenida;

                arParms[2] = new SqlParameter("@calle", SqlDbType.VarChar);

                arParms[2].Value = empleado.Direccion.Calle;

                arParms[3] = new SqlParameter("@ciudad", SqlDbType.VarChar);

                arParms[3].Value = empleado.Direccion.Ciudad;

                arParms[4] = new SqlParameter("@edif", SqlDbType.VarChar);

                arParms[4].Value = empleado.Direccion.Edif_Casa;

                arParms[5] = new SqlParameter("@piso", SqlDbType.VarChar);

                arParms[5].Value = empleado.Direccion.Piso_apto;

                arParms[6] = new SqlParameter("@urbanizacion", SqlDbType.VarChar);

                arParms[6].Value = empleado.Direccion.Urbanizacion;

                SqlHelper.ExecuteNonQuery
                    (_conexion.GetConnection(), "InsertarDireccionEmpleado", arParms);
            }

            catch (SqlException e)
            {
                throw new IngresarEmpleadoBDExepciones("Error SQL Ingresando en la Base de datos", e);
            }
            catch (Exception e)
            {
                throw new IngresarEmpleadoBDExepciones("Error Ingresando en Empleado en direccion", e);
            }
        }
        public List<Empleado> EliminarConsultarPorTipoNombre(Empleado emp)
        {
            List<Empleado> empleado = new List<Empleado>();

            SqlParameter[] arParms = new SqlParameter[1];

            arParms[0] = new SqlParameter("@nombre", SqlDbType.VarChar);
            arParms[0].Value = emp.Nombre;

            DbDataReader reader = SqlHelper.ExecuteReader
                (_conexion.GetConnection(), "ELiminarConsultarPorNombre", arParms);
            int i = 0;

            while (reader.Read())
            {
                Empleado _empleado = new Empleado();

                Direccion _direccion = new Direccion();

                _empleado.Id = (int)reader["IdEmpleado"];

                _empleado.Cedula = (int)reader["CIEmpleado"];

                _empleado.Nombre = (string)reader["Nombre"];

                _empleado.Apellido = (string)reader["Apellido"];

                _empleado.Cuenta = (string)reader["NumCuenta"];

                _empleado.FechaNacimiento = (DateTime)reader["FechaNac"];

                _empleado.Estado = (int)reader["Estado"];

                _empleado.Cargo = (string)reader["Expr1"];

                _direccion.Avenida = (string)reader["Avenida"];

                _direccion.Calle = (string)reader["Calle"];

                _direccion.Ciudad = (string)reader["Ciudad"];

                _direccion.Edif_Casa = (string)reader["EdifCasa"];

                _direccion.Piso_apto = (string)reader["PisoApto"];

                _direccion.Urbanizacion = (string)reader["Urbanizacion"];

                _empleado.Direccion = _direccion;

                empleado.Insert(i, _empleado);
                //empleado.Add(_empleado);
                i++;
            }
            return empleado;
        }
        public Empleado EliminarConsultarPorTipoCedula(Empleado emp)
        {
            SqlParameter[] arParms = new SqlParameter[1];

            Empleado _empleado = new Empleado();

            arParms[0] = new SqlParameter("@ced", SqlDbType.Int);
            arParms[0].Value = emp.Cedula;

            DbDataReader reader = SqlHelper.ExecuteReader
                (_conexion.GetConnection(), "EliminarConsultarEmpleadoCI", arParms);

            if (reader.Read())
            {

                Direccion _direccion = new Direccion();

                _empleado.Id = (int)reader["IdEmpleado"];

                _empleado.Cedula = (int)reader["CIEmpleado"];

                _empleado.Nombre = (string)reader["Nombre"];

                _empleado.Apellido = (string)reader["Apellido"];

                _empleado.Cuenta = (string)reader["NumCuenta"];

                _empleado.FechaNacimiento = (DateTime)reader["FechaNac"];

                _empleado.Estado = (int)reader["Estado"];

                _empleado.Cargo = (string)reader["Expr1"];

                _direccion.Avenida = (string)reader["Avenida"];

                _direccion.Calle = (string)reader["Calle"];

                _direccion.Ciudad = (string)reader["Ciudad"];

                _direccion.Edif_Casa = (string)reader["EdifCasa"];

                _direccion.Piso_apto = (string)reader["PisoApto"];

                _direccion.Urbanizacion = (string)reader["Urbanizacion"];

                _empleado.Direccion = _direccion;

            }

            return _empleado;
        }
        public IList<Empleado> ConsultarPorTipoCargo(Empleado emp)
        {
            List<Empleado> empleado = new List<Empleado>();

            try
            {

                SqlParameter[] arParms = new SqlParameter[1];

                arParms[0] = new SqlParameter("@cargo", SqlDbType.Int);

                arParms[0].Value = emp.CargoEmpleado.Id;

                DbDataReader reader = SqlHelper.ExecuteReader
                    (_conexion.GetConnection(), "ConsultarEmpleadoCargo", arParms);

                while (reader.Read())
                {

                    Empleado _empleado = new Empleado();

                    Direccion _direccion = new Direccion();

                    _empleado.Id = (int)reader["IdEmpleado"];

                    _empleado.Cedula = (int)reader["CIEmpleado"];

                    _empleado.Nombre = (string)reader["Nombre"];

                    _empleado.Apellido = (string)reader["Apellido"];

                    _empleado.Cuenta = (string)reader["NumCuenta"];

                    _empleado.FechaNacimiento = (DateTime)reader["FechaNac"];

                    _empleado.Estado = (int)reader["Estado"];

                    _empleado.Cargo = (string)reader["Expr1"];

                    _direccion.Avenida = (string)reader["Avenida"];

                    _direccion.Calle = (string)reader["Calle"];

                    _direccion.Ciudad = (string)reader["Ciudad"];

                    _direccion.Edif_Casa = (string)reader["EdifCasa"];

                    _direccion.Piso_apto = (string)reader["PisoApto"];

                    _direccion.Urbanizacion = (string)reader["Urbanizacion"];

                    _empleado.Direccion = _direccion;

                    empleado.Add(_empleado);
                }
            }
            catch (SqlException e)
            {
                throw new ConsultarEmpleadoBDException("Error SQL consultando en la Base de datos", e);
            }
            catch (Exception e)
            {
                throw new ConsultarEmpleadoBDException("Error consultando en la Base de datos", e);
            }

            return empleado;
        }
        /*public Empleado ConsultarCargoNuevo(Cargo entidad)
        {
            Empleado _empleado = new Empleado();

            try
            {
                SqlParameter[] arParms = new SqlParameter[1];

                arParms[0] = new SqlParameter("@NombreCargo", SqlDbType.VarChar);
                arParms[0] = entidad.Nombre;

                DbDataReader reader = SqlHelper.ExecuteNonQuery
                    (_conexion.GetConnection(), "ConsultarCargoNuevo", arParms);

               if(reader.Read())
                {
                    _empleado.Cargo = (string)reader["Idcargo"];

                }

               return _empleado;

            }
            catch (SqlException e)
            {
                throw new Exception(e.ToString());
            }
            catch (Exception e)
            {
                throw new Exception(e.ToString());
            }
        }*/
        public Empleado ConsultarPorCodigo(Empleado emp)
        {
            Empleado _empleado = new Empleado();

            //_empleado.SueldoBase = float.Parse(reader["SueldoBase"].ToString());// (float)reader["SueldoBase"];

            try
            {
                SqlParameter[] arParms = new SqlParameter[1];

                arParms[0] = new SqlParameter("@Id", SqlDbType.Int);

                arParms[0].Value = emp.Id;

                DbDataReader reader = SqlHelper.ExecuteReader
                    (_conexion.GetConnection(), "ConsultarEmpleadoCodigo", arParms);

                if (reader.Read())
                {

                    Direccion _direccion = new Direccion();

                    EstadoEmpleado _estadoEmpleado = new EstadoEmpleado();

                    Cargo _cargo = new Cargo();

                    _empleado.Cedula = (int)reader["CIEmpleado"];

                    _empleado.Nombre = (string)reader["Nombre"];

                    _empleado.Apellido = (string)reader["Apellido"];

                    _empleado.Cuenta = (string)reader["NumCuenta"];

                    _empleado.FechaNacimiento = (DateTime)reader["FechaNac"];

                    _empleado.SueldoBase = float.Parse(reader["SueldoBase"].ToString());
                    //(float)reader["SueldoBase"];

                    _estadoEmpleado.Nombre = (string)reader["EstadoEmpleado"];

                    _cargo.Nombre = (string)reader["Expr1"];

                    _direccion.Avenida = (string)reader["Avenida"];

                    _direccion.Calle = (string)reader["Calle"];

                    _direccion.Ciudad = (string)reader["Ciudad"];

                    _direccion.Edif_Casa = (string)reader["EdifCasa"];

                    _direccion.Piso_apto = (string)reader["PisoApto"];

                    _direccion.Urbanizacion = (string)reader["Urbanizacion"];

                    _empleado.Direccion = _direccion;

                    _empleado.EstadoEmpleado = _estadoEmpleado;

                    _empleado.CargoEmpleado = _cargo;

                }
            }
            catch (SqlException e)
            {
                throw new ConsultarEmpleadoBDException("Error SQL consultando en la Base de datos", e);
            }
            catch (Exception e)
            {
                throw new ConsultarEmpleadoBDException("Error consultando en la Base de datos", e);
            }

            return _empleado;
        }
        public IList<Empleado> ConsultarPorTipoCargo(Empleado emp)
        {
            List<Empleado> empleado = new List<Empleado>();
            SqlParameter[] arParms = new SqlParameter[1];

            arParms[0] = new SqlParameter("@cargo", SqlDbType.VarChar);
            arParms[0].Value = "%" + emp.Cargo + "%";

            DbDataReader reader = SqlHelper.ExecuteReader(GetConnection(), "ConsultarEmpleadoCargo", arParms);
            while (reader.Read())
            {
                Empleado _empleado = new Empleado();
                Direccion _direccion = new Direccion();
                _empleado.Cedula = (int)reader["CIEmpleado"];
                _empleado.Nombre = (string)reader["Nombre"];
                _empleado.Apellido = (string)reader["Apellido"];
                _empleado.Cuenta = (string)reader["NumCuenta"];
                _empleado.FechaNacimiento = (DateTime)reader["FechaNac"];
                _empleado.Estado = (string)reader["Estado"];
                _empleado.Cargo = (string)reader["Expr1"];
                _direccion.Avenida = (string)reader["Avenida"];
                _direccion.Calle = (string)reader["Calle"];
                _direccion.Ciudad = (string)reader["Ciudad"];
                _direccion.Edif_Casa = (string)reader["EdifCasa"];
                _direccion.Piso_apto = (string)reader["PisoApto"];
                _direccion.Urbanizacion = (string)reader["Urbanizacion"];
                _empleado.Direccion = _direccion;
                empleado.Add(_empleado);
            }
            return empleado;
        }
        public Direccion buscarDireccion(int idCliente)
        {
            SqlParameter arParms = new SqlParameter();

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

            arParms.Value = idCliente;

            SqlDataReader reader = SqlHelper.ExecuteReader
                        (GetConnection(), "ConsultarDireccionCliente", arParms);

            Direccion direcccion = new Direccion();

            if (reader.Read())
            {
                direcccion.Avenida = (string)reader["Avenida"];

                direcccion.Calle = (string)reader["Calle"];

                direcccion.Ciudad = (string)reader["Ciudad"];

                direcccion.Edif_Casa = (string)reader["EdifCasa"];

                direcccion.Piso_apto = (string)reader["PisoApto"];

                direcccion.Urbanizacion = (string)reader["Urbanizacion"];
            }

            return direcccion;
        }
        public List<Cliente> ConsultarParamtroNombre(Cliente entidad)
        {
            List<Cliente> ListaCliente = new List<Cliente>();

            try
            {

                SqlParameter parametros = new SqlParameter();

                parametros = new SqlParameter("@Nombre", SqlDbType.VarChar);

                parametros.Value = entidad.Nombre;

                DbDataReader conexion =
                SqlHelper.ExecuteReader(_conexion.GetConnection(), "ConsultarClienteParametroNombre", parametros);

                int i = 0;

                while (conexion.Read())
                {

                    Cliente _Cliente = new Cliente();

                    _Cliente.IdCliente = (int)conexion["IdCliente"];

                    _Cliente.Nombre = (string)conexion["Nombre"];

                    _Cliente.Rif = (string)conexion["RifCliente"];

                    _Cliente.AreaNegocio = (string)conexion["AreaNegocio"];

                    Direccion _Direccion = new Direccion();

                    _Cliente.Direccion = buscarDireccion(_Cliente.IdCliente);

                    IList<Contacto> _listaContacto = new List<Contacto>();

                    _listaContacto = BuscarContacto(_Cliente.IdCliente);

                    _Cliente.Contacto = _listaContacto;

                    ListaCliente.Insert(i, _Cliente);

                    i++;

                }

                if (ListaCliente.Count == 0)

                    throw new ConsultarClienteBDExcepciones();

                return ListaCliente;
            }
            catch (SqlException e)
            {
                throw new ConsultarClienteBDExcepciones
                    ("Error en SQL consultando la lista de contacto del cliente", e);
            }
            catch (Exception e)
            {
                throw new ConsultarClienteBDExcepciones
                    ("Error consultado el la lista de contacto en la base de dato", e);
            }
        }