/// <summary> /// Gets the course object for a given course id /// </summary> /// <param name="id">The id of the course</param> /// <returns>Returns the course</returns> public static Course GetCourse(int id) { Course course = null; try { SqlConnection db = new SqlConnection(connectionString); SqlTransaction transaction; db.Open(); transaction = db.BeginTransaction(IsolationLevel.ReadCommitted); try { SqlCommand cmd = new SqlCommand("SELECT C.id_course, C.name, C.[key], C.active, R.id_person, R.firstname, R.lastname, C.timestamp " + "FROM Course C " + "INNER JOIN Responsible R ON R.id_person = C.id_person " + "WHERE C.id_course=@id_course;", db, transaction); cmd.Parameters.Add("@id_course", SqlDbType.Int).Value = id; SqlDataReader rdr = cmd.ExecuteReader(); if (rdr.Read()) { string name = rdr.GetString(rdr.GetOrdinal("name")); string key = rdr.GetString(rdr.GetOrdinal("Key")); bool active = rdr.GetBoolean(rdr.GetOrdinal("active")); int id_person = rdr.GetInt32(rdr.GetOrdinal("id_person")); int id_course = rdr.GetInt32(rdr.GetOrdinal("id_course")); course = new Course(id_course, name, key, active, id_person); course.ResponsibleString = rdr.GetString(rdr.GetOrdinal("firstname")) + " " + rdr.GetString(rdr.GetOrdinal("lastname")); byte[] buffer = new byte[100]; rdr.GetBytes(rdr.GetOrdinal("timestamp"), 0, buffer, 0, 100); course.setTimestamp(buffer); } rdr.Close(); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); throw new GrException(e, Messages.errProd); } db.Close(); } catch (Exception e) { if (e is GrException) { throw e; } throw new GrException(e, Messages.errProd); } return(course); }
/// <summary> /// Gets the course object for a given course id /// </summary> /// <param name="id">The id of the course</param> /// <returns>Returns the course</returns> public static Course GetCourse(int id) { Course course = null; try { SqlConnection db = new SqlConnection(connectionString); SqlTransaction transaction; db.Open(); transaction = db.BeginTransaction(IsolationLevel.ReadCommitted); try { SqlCommand cmd = new SqlCommand("SELECT C.id_course, C.name, C.[key], C.active, R.id_person, R.firstname, R.lastname, C.timestamp " + "FROM Course C " + "INNER JOIN Responsible R ON R.id_person = C.id_person " + "WHERE C.id_course=@id_course;", db, transaction); cmd.Parameters.Add("@id_course", SqlDbType.Int).Value = id; SqlDataReader rdr = cmd.ExecuteReader(); if (rdr.Read()) { string name = rdr.GetString(rdr.GetOrdinal("name")); string key = rdr.GetString(rdr.GetOrdinal("Key")); bool active = rdr.GetBoolean(rdr.GetOrdinal("active")); int id_person = rdr.GetInt32(rdr.GetOrdinal("id_person")); int id_course = rdr.GetInt32(rdr.GetOrdinal("id_course")); course = new Course(id_course, name, key, active, id_person); course.ResponsibleString = rdr.GetString(rdr.GetOrdinal("firstname")) + " " + rdr.GetString(rdr.GetOrdinal("lastname")); byte[] buffer = new byte[100]; rdr.GetBytes(rdr.GetOrdinal("timestamp"), 0, buffer, 0, 100); course.setTimestamp(buffer); } rdr.Close(); transaction.Commit(); } catch(Exception e) { transaction.Rollback(); throw new GrException(e, Messages.errProd); } db.Close(); } catch(Exception e) { if (e is GrException) throw e; throw new GrException(e, Messages.errProd); } return course; }