public static Profesional traerProfesionalPorMatricula(Int64 matricula)
      {
          SqlCommand traerProfesionales = new SqlCommand("SELECT matricula,tipo_doc,numero_doc,nombre,apellido,direccion,telefono,mail,fecha_nac,usuario FROM ELIMINAR_CAR.Profesional WHERE matricula=@matricula", DBConnector.ObtenerConexion());

          traerProfesionales.Parameters.Add("@matricula", SqlDbType.BigInt).Value = matricula;
          List <Profesional> profesionales = new List <Profesional>();
          SqlDataReader      reader        = traerProfesionales.ExecuteReader();

          while (reader.Read())
          {
              Profesional p = new Profesional();
              p.matricula  = reader.GetInt64(0);
              p.tipo_doc   = (tipo_doc)reader.GetInt32(1);
              p.numero_doc = reader.GetDecimal(2);
              p.nombre     = reader.GetString(3);
              p.apellido   = reader.GetString(4);
              p.direccion  = reader.GetString(5);
              p.telefono   = reader.GetInt64(6);
              p.mail       = reader.GetString(7);
              p.fecha_nac  = reader.GetDateTime(8);
              p.usuario    = reader.GetString(9);
              profesionales.Add(p);
          }
          reader.Close();
          profesionales.ForEach(prof =>
            {
                prof.especialidades = Especialidad.especialidadesPorProfesional(prof.matricula);
            });
          return(profesionales.First());
      }
      public static List <Profesional> profesionales(SqlConnection conexion)
      {
          SqlCommand         traerProfesionales = new SqlCommand("SELECT matricula,tipo_doc,numero_doc,nombre,apellido,direccion,telefono,mail,fecha_nac,usuario FROM ELIMINAR_CAR.Profesional", conexion);
          List <Profesional> profesionales      = new List <Profesional>();
          SqlDataReader      reader             = traerProfesionales.ExecuteReader();

          while (reader.Read())
          {
              Profesional p = new Profesional();
              p.matricula  = reader.GetInt64(0);
              p.tipo_doc   = (tipo_doc)reader.GetInt32(1);
              p.numero_doc = reader.GetDecimal(2);
              p.nombre     = reader.GetString(3);
              p.apellido   = reader.GetString(4);
              p.direccion  = reader.GetString(5);
              p.telefono   = reader.GetInt64(6);
              p.mail       = reader.GetString(7);
              p.fecha_nac  = reader.GetDateTime(8);
              p.usuario    = reader.GetString(9);
              profesionales.Add(p);
          }
          reader.Close();
          profesionales.ForEach(prof =>
            {
                prof.especialidades = Especialidad.especialidadesPorProfesional(prof.matricula);
            });
          return(profesionales);
      }
        internal static List <DateTime> generarDiasQueTrabajaRango(Profesional prof, int id_especialidad, Rango_Atencion r)
        {
            List <DateTime>  dias           = Rango_Atencion.generarDiasRango(r);
            List <DayOfWeek> diasQueTrabaja = prof.diasQueTrabajaNormalmente(id_especialidad, r);

            dias.RemoveAll(dia => !diasQueTrabaja.Contains(dia.DayOfWeek));
            return(dias);
        }