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