/** * Returns an ITaskState witht a variable with name * {@link #STATE_VARIABLE_NAME} , and whose value is the number of times * that the child task of this decorator has been run so far. * * @see jbt.execution.core.ExecutionTask#storeTerminationState() */ protected override ITaskState StoreTerminationState() { var variables = new List <Tuple <string, Object> > { new Tuple <string, Object>(StateVariableName, _numRunsSoFar) }; return(TaskStateFactory.CreateTaskState(variables)); }
public override HttpResponseMessage Execute() { IProcessedEntity task = _taskProvider.Get(_id); if (task == null) { return(Controller.Request.CreateErrorResponse(HttpStatusCode.NotFound, "NotFound")); } if (task.EntityType != ProcessedEntityType || task.State != TaskState.Processing) { return(Controller.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Invalid entity identifier.")); } task.Completed = DateTime.UtcNow; task.DestinationFileId = _model.FileId; try { task.SetState(TaskStateFactory.GetState(_model.Result)); } catch (Exception e) { Trace.TraceError("Failed to change task state: {0}", e); } _taskChecker.CheckTask(task); if (!string.IsNullOrEmpty(_model.Message)) { Trace.TraceError("File {0} processing failed: {1}", task.SourceFileId, _model.Message); } return(Controller.Request.CreateResponse(HttpStatusCode.OK)); }