Example #1
0
 public override void OnMessage(MessageContext messageContext)
 {
     this.semaphore.WaitAsync(30000).ContinueWith(
         t =>
     {
         if (!t.Result)
         {
             messageContext.Complete(new Error(ErrorCode.ResourceLimitExceeded));
         }
         else
         {
             this.semaphore.Release();
             messageContext.Complete();
         }
     });
 }
Example #2
0
            void IMessageProcessor.Process(MessageContext messageContext)
            {
                Console.WriteLine("Received a message.");
                PrintMessage(messageContext.Message);

                messageContext.Complete();
            }
        public void Process(MessageContext messageContext)
        {
            object body    = null;
            var    subject = messageContext.Message.Properties.Subject;

            switch (subject)
            {
            case "Person":
                body = messageContext.Message.GetBody <Person>();
                break;

            case "MapAddress":
                body = messageContext.Message.GetBody <MapAddress>();
                break;

            case "InternationalAddress":
                body = messageContext.Message.GetBody <InternationalAddress>();
                break;

            default:
                break;
            }

            if (body == null)
            {
                Console.WriteLine("Received a message with unknown type {0} in subject.", subject);
            }
            else
            {
                Console.WriteLine("Received a message with body {0}", body.GetType().Name);
            }

            messageContext.Complete();
        }
        public void Process(MessageContext messageContext)
        {
            var person = messageContext.Message.GetBody <Person>();

            Console.WriteLine(person.ToString());

            messageContext.Complete();
        }
        public void Process(MessageContext messageContext)
        {
            if (this.Messages != null)
            {
                this.Messages.Add(messageContext.Message);
            }

            messageContext.Complete();
        }
Example #6
0
 public override void OnMessage(MessageContext messageContext)
 {
     this.semaphore.WaitAsync(30000).ContinueWith(
         t =>
     {
         if (t.IsCanceled || t.IsFaulted)
         {
             messageContext.Complete(new Error()
             {
                 Condition = ErrorCode.ResourceLimitExceeded
             });
         }
         else
         {
             this.semaphore.Release();
             messageContext.Complete();
         }
     });
 }
        void IMessageProcessor.Process(MessageContext messageContext)
        {
            if (_messageHandler != null)
            {
                if (_messageHandler(messageContext))
                {
                    return;
                }
            }

            _messages.TryAdd(new Message(messageContext.Message));
            messageContext.Complete();
        }
Example #8
0
            public override void OnMessage(MessageContext messageContext)
            {
                messageContext.Complete();

                // delay 1s for the next message
                Task.Delay(1000, this.cts.Token).ContinueWith(
                    t =>
                {
                    if (!t.IsCanceled)
                    {
                        this.link.SetCredit(1, false, false);
                    }
                });
            }
Example #9
0
            public override void OnMessage(MessageContext messageContext)
            {
                try
                {
                    CFXEnvelope message = AmqpUtilities.EnvelopeFromMessage(messageContext.Message);
                    if (message != null)
                    {
                        parentProcessor.Fire_OnMessageReceivedFromListener(targetAddress, message);
                    }
                    else
                    {
                        AppLog.Warn($"Undecodeable message received on listener {targetAddress}");
                    }
                }
                catch (Exception ex)
                {
                    AppLog.Error(ex);
                }

                messageContext.Complete();
            }
Example #10
0
            /// <summary>
            /// Async task for handling request
            /// </summary>
            /// <param name="messageContext">context of message</param>
            /// <returns>async task</returns>
            async Task ReplyAsync(MessageContext messageContext)
            {
                while (this.received < count)
                {
                    try
                    {
                        Message message = messageContext.Message;
                        Formatter.LogMessage(message, options);
                        this.received++;
                        messageContext.Complete();
                    }
                    catch (Exception exception)
                    {
                        Console.Error.WriteLine("ERROR: {{'cause': '{0}'}}", exception.Message);
                        Environment.Exit(ReturnCode.ERROR_OTHER);
                    }

                    await Task.Delay(500);
                }
                host.Close();
                Environment.Exit(ReturnCode.ERROR_SUCCESS);
            }
Example #11
0
            void IMessageProcessor.Process(MessageContext messageContext)
            {
                try
                {
                    List <CFXEnvelope> messages = AmqpUtilities.EnvelopesFromMessage(messageContext.Message);
                    if (messages != null && messages.Any())
                    {
                        foreach (CFXEnvelope message in messages)
                        {
                            parentProcessor.Fire_OnMessageReceivedFromListener(TargetAddress, message);
                        }
                    }
                    else
                    {
                        AppLog.Warn($"Undecodeable message received on listener {TargetAddress}");
                    }
                }
                catch (Exception ex)
                {
                    AppLog.Error(ex);
                }

                messageContext.Complete();
            }
Example #12
0
        private void CtsLink_OnMessage(MessageContext context)
        {
            // Ack that we got the message.
            //link.Accept(message);
            context.Complete();

            // Ignore messages that don't have a body
            if (context.Message?.Body == null)
            {
                return;
            }

            // Ignore messages that are not a serialized FiniteDto
            var jsonBody = context.Message.Body.ToString();
            var dtoName  = JsonDtoSerializer.GetDtoName(jsonBody);

            if (string.IsNullOrWhiteSpace(dtoName))
            {
                return;
            }

            // TODO: recode this to not be a switch (instead a map)
            switch (dtoName)
            {
            // This Dto takes care of running all server commands if the client is
            // in the right context and has the right permissions
            case nameof(ServerCommandDto):
                var dto = JsonDtoSerializer.DeserializeAs <ServerCommandDto>(jsonBody);
                if (!CommandRunner.TryRunCommandFromClient(dto.Command, dto.ExtraWords, this))
                {
                    SendDescriptiveTextDtoMessage($"Unknown command");
                }

                break;
            }
        }
Example #13
0
 public override void OnMessage(MessageContext messageContext)
 {
     // this can also be done when an async operation, if required, is done
     messageContext.Complete();
 }
Example #14
0
 public void Process(MessageContext messageContext)
 {
     Console.WriteLine("Listener: received '{0}'.", messageContext.Message.Body);
     messageContext.Complete();
 }
Example #15
0
 public override void OnMessage(MessageContext messageContext)
 {
     _entity.Post(messageContext.Message.Clone());
     messageContext.Complete();
 }
Example #16
0
 void IMessageProcessor.Process(MessageContext messageContext)
 {
     messageContext.Complete();
 }
Example #17
0
 public void Process(MessageContext messageContext)
 {
     this.Messages.Add(messageContext.Message);
     messageContext.Complete();
 }
 public override void OnMessage(MessageContext messageContext)
 {
     messageContext.Complete();
 }
Example #19
0
 public override void OnMessage(MessageContext messageContext)
 {
     messages?.Add(messageContext.Message);
     messageContext.Complete();
 }