public static void Abort (DB db, int id) { DBWork work = DBWork_Extensions.Create (db, id); work.State = DBState.Aborted; work.Save (db); work.UpdateRevisionWorkState (db); }
public static void Clear (DB db, int id) { DBWork work = DBWork_Extensions.Create (db, id); work.State = DBState.NotDone; work.summary = string.Empty; work.Save (db); work.UpdateRevisionWorkState (db); }
public static void Resume (DB db, int id) { DBWork work = DBWork_Extensions.Create (db, id); if (work.State == DBState.Paused) { work.State = DBState.NotDone; work.Save (db); work.UpdateRevisionWorkState (db); } }
/// <summary> /// Puts pending steps in result /// </summary> /// <param name="lane"></param> /// <param name="revision"></param> /// <returns></returns> private static void FilterPendingWork(this DBRevisionWork rw, DB db, List <DBWorkView2> steps, List <DBWorkView2> result, bool multiple_work) { bool failed_revision = false; for (int i = 0; i < steps.Count; i++) { if (steps [i].State == DBState.NotDone || steps [i].State == DBState.Executing) { // After a failed and fatal step, don't add any steps which aren't marked as alwaysexecute. if (failed_revision && !steps [i].alwaysexecute) { DBWork_Extensions.SetState(db, steps [i].id, steps [i].State, DBState.Skipped); continue; } // if we already have steps, don't add steps with higher sequence numbers if (!multiple_work && result.Count > 0 && result [0].sequence != steps [i].sequence) { continue; } result.Add(steps [i]); } else if (steps [i].State == DBState.Paused) { // Don't add any steps after a paused step break; } else { if (!steps [i].nonfatal && (steps [i].State == DBState.Failed || steps [i].State == DBState.Timeout || steps [i].State == DBState.Aborted)) { failed_revision = true; } } } }