public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            OrdenTrabajo ord = obj as OrdenTrabajo;

            if (ord == null)
            {
                return(false);
            }
            else
            {
                if (ord.CodigoInterno == this.CodigoInterno &&
                    ord.Codigo == this.Codigo)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
        private static List <OrdenTrabajo> ObtenerTodos(ParametrosBusquedaOrdenes parametros, SqlConnection connection)
        {
            List <OrdenTrabajo> ordenes = null;

            if (connection.State != ConnectionState.Open)
            {
                connection.Open();
            }

            using (SqlCommand cmd = connection.CreateCommand())
            {
                cmd.CommandType = CommandType.StoredProcedure;
                AddSearchParameters(cmd, parametros, "SELECT");
                //AddParameters(cmd, ord, "SELECT");

                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    ordenes = new List <OrdenTrabajo>();
                    while (reader.Read())
                    {
                        OrdenTrabajo orden = new OrdenTrabajo();

                        ordenes.Add(orden);
                    }
                }
            }

            return(ordenes);
        }
        private static OrdenTrabajo Editar(OrdenTrabajo ordAEditar, SqlConnection connection)
        {
            //editar con el obj ordAEditar
            OrdenTrabajo ordEditada = new OrdenTrabajo();

            ordEditada.CodigoInterno = ordAEditar.CodigoInterno; //cdo hacemos el executenonquery obtenemos este codigo!
            ordEditada.Codigo        = ordAEditar.Codigo;

            return(ObtenerPorPK(ordEditada));
        }
        private static OrdenTrabajo Crear(OrdenTrabajo ordACrear, SqlConnection connection)
        {
            //crear con el obj ordACrear
            OrdenTrabajo ordNueva = new OrdenTrabajo();

            ordNueva.CodigoInterno = 0; //cdo hacemos el executenonquery obtenemos este codigo!
            ordNueva.Codigo        = ordACrear.CodigoInterno;

            return(ObtenerPorPK(ordNueva));
        }
        //ver si conviene hacer métodos estáticos o instanciar la clase para acceder a los métodos!

        /// <summary>
        /// Obtiene una OrdenTrabajo por su clave Primaria.
        /// </summary>
        /// <param name="ord">La OrdenTrajo con solo con la Pk seteada.</param>
        /// <returns>OrdenTrabajo.</returns>
        public static OrdenTrabajo ObtenerPorPK(OrdenTrabajo ord)
        {
            try
            {
                using (SqlConnection connection = new SqlConnection(""))
                    return(ObtenerPorPK(ord, connection));
            }
            catch (Exception ex)
            {
                //si hubiera ws ahí tendría que haber otro try catch y ahí loguear el error!
                string hostName  = Dns.GetHostName();
                string ipAddress = Dns.GetHostEntry(hostName).AddressList[0].ToString();
                LogError.CreateLog(ex, System.Reflection.MethodBase.GetCurrentMethod().Name, "", ipAddress);
                throw ex;
            }
        }
 /// <summary>
 /// documentar
 /// </summary>
 /// <param name="ord"></param>
 public static void Cierre(OrdenTrabajo ord)
 {
     try
     {
         ord.FechaCierre = DateTime.Now;
         using (SqlConnection connection = new SqlConnection(""))
             Editar(ord, connection);
     }
     catch (Exception ex)
     {
         //si hubiera ws ahí tendría que haber otro try catch y ahí loguear el error!
         string hostName  = Dns.GetHostName();
         string ipAddress = Dns.GetHostEntry(hostName).AddressList[0].ToString();
         LogError.CreateLog(ex, System.Reflection.MethodBase.GetCurrentMethod().Name, "", ipAddress);
         throw ex;
     }
 }
 //ver si conviene mapear todo acá!!
 internal OrdenTrabajo(OrdenTrabajo orden)
 {
 }
        private static void AddParameters(SqlCommand cmd, OrdenTrabajo orden, string accion)
        {
            SqlParameter paCodigoInterno = cmd.Parameters.Add("@ord_id", SqlDbType.Int);
            SqlParameter paCodigo        = cmd.Parameters.Add("@ord_codigo", SqlDbType.Int);
            SqlParameter paDescripcion   = cmd.Parameters.Add("@ord_descripcion", SqlDbType.VarChar, 300);
            SqlParameter paObservacion   = cmd.Parameters.Add("@ord_observacion", SqlDbType.VarChar, -1);
            SqlParameter paDireccion     = cmd.Parameters.Add("@ord_direccion", SqlDbType.VarChar, 150);
            SqlParameter paSolicitante   = cmd.Parameters.Add("@ord_solicitante", SqlDbType.VarChar, 100);
            SqlParameter paTipo          = cmd.Parameters.Add("@ord_tipo", SqlDbType.VarChar, 100);
            SqlParameter paUsuario       = cmd.Parameters.Add("@ord_usuario", SqlDbType.VarChar, 100);
            SqlParameter paFechaLG       = cmd.Parameters.Add("@ord_fecha_lg", SqlDbType.Date);
            SqlParameter paFechaCierre   = cmd.Parameters.Add("@ord_fecha_cierre", SqlDbType.DateTime);
            SqlParameter paFechaAlta     = cmd.Parameters.Add("@ord_fecha_alta", SqlDbType.DateTime);
            SqlParameter paFechaBaja     = cmd.Parameters.Add("@ord_fecha_baja", SqlDbType.DateTime);
            SqlParameter paAccion        = cmd.Parameters.Add("@accion", SqlDbType.VarChar, 20);
            SqlParameter paFechaDesde    = cmd.Parameters.Add("@ord_fecha_desde", SqlDbType.DateTime);
            SqlParameter paFechaHasta    = cmd.Parameters.Add("@ord_fecha_hasta", SqlDbType.DateTime);
            SqlParameter paIncluirBajas  = cmd.Parameters.Add("@incluir_bajas", SqlDbType.Int);

            paCodigoInterno.Value = 0;
            paCodigo.Value        = orden.Codigo;
            if (!string.IsNullOrWhiteSpace(orden.Descripcion))
            {
                paDescripcion.Value = orden.Descripcion;
            }
            else
            {
                paDescripcion.Value = DBNull.Value;
            }
            if (!string.IsNullOrWhiteSpace(orden.Observaciones))
            {
                paObservacion.Value = orden.Observaciones;
            }
            else
            {
                paObservacion.Value = DBNull.Value;
            }
            if (!string.IsNullOrWhiteSpace(orden.Direccion))
            {
                paDireccion.Value = orden.Direccion;
            }
            else
            {
                paDireccion.Value = DBNull.Value;
            }
            if (!string.IsNullOrWhiteSpace(orden.Solicitante))
            {
                paSolicitante.Value = orden.Solicitante;
            }
            else
            {
                paSolicitante.Value = DBNull.Value;
            }
            if (!string.IsNullOrWhiteSpace(orden.Tipo))
            {
                paTipo.Value = orden.Tipo;
            }
            else
            {
                paTipo.Value = DBNull.Value;
            }
            if (!string.IsNullOrWhiteSpace(orden.Usuario))
            {
                paUsuario.Value = orden.Usuario;
            }
            else
            {
                paUsuario.Value = DBNull.Value;
            }
            paFechaLG.Value = orden.FechaLG;
            if (orden.FechaCierre.HasValue)
            {
                paFechaCierre.Value = orden.FechaCierre.Value;
            }
            else
            {
                paFechaCierre.Value = DBNull.Value;
            }
            paFechaAlta.Value = orden.FechaAlta;
            if (orden.FechaBaja.HasValue)
            {
                paFechaBaja.Value = orden.FechaBaja.Value;
            }
            else
            {
                paFechaBaja.Value = DBNull.Value;
            }

            paAccion.Value       = accion;
            paFechaDesde.Value   = DBNull.Value;
            paFechaHasta.Value   = DBNull.Value;
            paIncluirBajas.Value = DBNull.Value;
        }
 private static void Eliminar(OrdenTrabajo ordAEliminar, SqlConnection connection)
 {
     //eliminar con el obj ordAEliminar
 }
        private static OrdenTrabajo ObtenerPorPK(OrdenTrabajo ord, SqlConnection connection)
        {
            OrdenTrabajo orden = null;

            return(orden);
        }