public bool IsLatestRevisionWork (DBRevisionWork current)
{
using (IDbCommand cmd = CreateCommand ()) {
cmd.CommandText = @"
SELECT
RevisionWork.id
FROM
RevisionWork
INNER JOIN
Revision ON RevisionWork.revision_id = Revision.id
WHERE
lock_expires < now () AND
RevisionWork.host_id = @host_id
AND RevisionWork.lane_id = @lane_id
AND RevisionWork.completed = false
ORDER BY Revision.date DESC
LIMIT 1
;";
DB.CreateParameter (cmd, "host_id", current.host_id);
DB.CreateParameter (cmd, "lane_id", current.lane_id);
using (IDataReader reader = cmd.ExecuteReader ()) {
if (!reader.Read ()) {
log.Debug ("IsLatestRevisionWork: No result.");
return true;
}
if (reader.GetInt32 (0) <= current.id)
return true;
log.DebugFormat ("IsLatestRevisionWork: Latest id: {0}, current id: {1}", reader.GetInt32 (0), current.id);
return false;
}
}
}