Example #1
0
		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);
		}
Example #2
0
		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);
		}
Example #3
0
		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);
			}
		}
Example #4
0
        /// <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;
                    }
                }
            }
        }