private void ContinueOnComplete(ActiveTaskContext context) { var messageFormat = (!context.WasTaskCancelled) ? "Task \"{0}\" for Client {1} completed." : "Task \"{0}\" for Client {1} was cancelled. This task may not have completed."; logger.InfoFormat(messageFormat, context.TaskName, context.ClientId); if (context.WasTaskCancelled) { publisher.PublishStatusCanceled(context.ClientId, context.TaskId, DateTime.Now); } else { publisher.PublishStatusComplete(context.ClientId, context.TaskId, DateTime.Now); } ActiveTaskContext existingContext; if (!contextProvider.TryRemove(context.TaskId, out existingContext)) { logger.WarnFormat( "Unable to remove task \"{0}\" for Client {1}. This may occur if the task was already removed or evicted from the dictionary.", context.TaskName, context.ClientId); return; } if (!context.WasTaskCancelled) { scheduleProvider.PushTaskForConsideration(context.TaskId); } context.Dispose(); }
public bool Handle(IMiramarTaskProvider taskProvider, IMiramarScheduleProvider scheduleProvider, IMiramarContextProvider contextProvider, IIstaMessage message) { var request = JsonMessageSerializer.DeserializeType(message.Body, new { requestId = 0, requestedBy = string.Empty, requestedOn = DateTime.Now, taskId = string.Empty, }); if (request == null) { return(false); } scheduleProvider.PushTaskForConsideration(request.taskId); return(true); }