Ejemplo n.º 1
0
        private static void MessageReceiver(object sender, MessageReceivedEventArgs e)
        {
            if (e.QueueName != IncomingQueueName)
            {
                return;
            }

            if (!ControllerTaskResultMessage.IsJsonValidMessage(e.Message))
            {
                return;
            }

            var message = ControllerTaskResultMessage.FromJson(e.Message);

            if (!Tasks.ContainsKey(message.taskid))
            {
                return;
            }

            if (!TaskResultMessages.Contains(message.result))
            {
                return;
            }
            //throw new FormatException($"Message is of bad format. Contains invalid result message. Message: {e.Message}");

            Action <ControllerTaskResultMessage> action = TaskCompleteActions[message.taskid];

            TaskCompleteActions.Remove(message.taskid);
            Tasks.Remove(message.taskid);
            action(message);
        }
Ejemplo n.º 2
0
 private static void RunTask(ControllerTaskRequestMessage message, Action <ControllerTaskResultMessage> actionToCallAfterComplete)
 {
     Tasks.Add(message.taskid, message);
     TaskCompleteActions.Add(message.taskid, actionToCallAfterComplete);
     Communicator.Send(OutgoingQueueName, message.ToJson());
 }