Exemplo n.º 1
0
        /**
         * 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));
        }
Exemplo n.º 2
0
        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));
        }