MonkeyWrench.DB.GetRevisionWork C# (CSharp) Method

GetRevisionWork() public method

Will return a locked revision work.
public GetRevisionWork ( DBLane lane, DBHost host, DBHost workhost ) : DBRevisionWork
lane DBLane
host DBHost
workhost DBHost
return DBRevisionWork
		public DBRevisionWork GetRevisionWork (DBLane lane, DBHost host, DBHost workhost)
		{
			DBRevisionWork result = null;

			using (IDbCommand cmd = CreateCommand ()) {
				// sorting by RevisionWork.workhost_id ensures that we'll get 
				// revisionwork which has been started at the top of the list.
				cmd.CommandText = @"
SELECT 
	RevisionWork.*
FROM 
	RevisionWork
INNER JOIN 
	Revision ON RevisionWork.revision_id = Revision.id
WHERE 
        RevisionWork.host_id = @host_id 
	AND (RevisionWork.workhost_id = @workhost_id OR RevisionWork.workhost_id IS NULL)
	AND RevisionWork.lane_id = @lane_id
	AND RevisionWork.state <> @dependencynotfulfilled AND RevisionWork.state <> 10 AND RevisionWork.State <> @ignore
	AND RevisionWork.completed = false
ORDER BY RevisionWork.workhost_id IS NULL ASC, RevisionWork.priority DESC, Revision.date DESC
LIMIT 1
;";
				DB.CreateParameter (cmd, "host_id", host.id);
				DB.CreateParameter (cmd, "lane_id", lane.id);
				DB.CreateParameter (cmd, "workhost_id", workhost.id);
				DB.CreateParameter (cmd, "dependencynotfulfilled", (int) DBState.DependencyNotFulfilled);
				DB.CreateParameter (cmd, "ignore", (int) DBState.Ignore);
				using (IDataReader reader = cmd.ExecuteReader ()) {
					if (reader.Read ())
						result = new DBRevisionWork (reader);
				}
			}

			return result;
		}