public virtual IHttpActionResult GetSecondary <SECONDARY>(SECONDARY id, int size) { log.TraceFormat("GetSecondary<{0:S}::{1:S}({2:S}) requested", typeof(T).Name, typeof(SECONDARY).Name, id.ToString()); try { T t = default(T); using (SqlConnection conn = new SqlConnection(Startup.ConnectionString)) { conn.Open(); using (var trans = conn.BeginTransaction()) { t = DatabaseItem <K> .GetBySecondary <T, SECONDARY>(conn, trans, id, size); trans.Commit(); } } if (t != null) { return(Ok(t)); } else { return(NotFound()); } } catch (Core.Exceptions.TSQLNotFoundException ex) { return(BadRequest(string.Format("Get secondary not supported by {0:S} ({1:S})", this.GetType().FullName, ex.ToString()))); } }