Пример #1
0
        public void SetUp()
        {
            context = new Context();

            registry = new HandlerRegistrySimulator(context);

            broker = new Broker();
            sender = new MessageUnit(new EndpointConfiguration().Endpoint(SenderEndpointName).Concurrency(1))
                     .Use(new AlwaysRouteToDestination(Queue.Create(ReceiverEndpointName)))
                     .Use(registry);

            receiver = new MessageUnit(new EndpointConfiguration().Endpoint(ReceiverEndpointName).Concurrency(1))
                       .Use(new AlwaysRouteToDestination(Queue.Create(SenderEndpointName)))
                       .Use(registry);

            broker.Register(sender)
            .Register(receiver);

            broker.Start();
        }
Пример #2
0
        private static IPMode SendingOrReceivingPMode(
            MessageUnit mu,
            SendingProcessingMode sendPMode,
            ReceivingProcessingMode receivePMode)
        {
            if (sendPMode?.Id != null)
            {
                Logger.Trace($"Use already set SendingPMode {sendPMode.Id} for inserting OutMessage");
                return(sendPMode);
            }

            if (mu is SignalMessage && receivePMode != null)
            {
                Logger.Trace($"Use ReceivingPMode {receivePMode.Id} to insert with the OutMessage");
                return(receivePMode);
            }

            Logger.Warn("No SendingPMode or ReceivingPMode was found to insert with the OutMessage");
            return(null);
        }
Пример #3
0
 /// <summary>
 /// Assigns the parent properties.
 /// </summary>
 /// <param name="messageUnit">The MessageUnit from which the properties must be retrieved..</param>
 public void AssignAS4Properties(MessageUnit messageUnit)
 {
     if (messageUnit is UserMessage userMessage)
     {
         FromParty      = userMessage.Sender.PartyIds.First().Id;
         ToParty        = userMessage.Receiver.PartyIds.First().Id;
         Action         = userMessage.CollaborationInfo.Action;
         Service        = userMessage.CollaborationInfo.Service.Value;
         ConversationId = userMessage.CollaborationInfo.ConversationId;
         Mpc            = userMessage.Mpc;
         IsTest         = userMessage.IsTest;
         IsDuplicate    = userMessage.IsDuplicate;
         SoapEnvelope   = AS4XmlSerializer.ToString(UserMessageMap.Convert(userMessage));
     }
     else
     {
         if (messageUnit is SignalMessage signalMessage)
         {
             IsDuplicate = signalMessage.IsDuplicate;
             Mpc         = signalMessage.MultiHopRouting.Select(r => r.mpc).GetOrElse(Constants.Namespaces.EbmsDefaultMpc);
         }
     }
 }
Пример #4
0
        public void SetUp()
        {
            context  = new Context();
            registry = new HandlerRegistrySimulator(context);
            router   = new Router();

            broker = new Broker();
            sender = new MessageUnit(new EndpointConfiguration().Endpoint("Sender").Concurrency(1))
                     .Use(router);
            receiverOne = new MessageUnit(new EndpointConfiguration().Endpoint(ReceiverOneEndpointName)
                                          .Concurrency(1)).Use(registry);
            receiverTwo = new MessageUnit(new EndpointConfiguration().Endpoint(ReceiverTwoEndpointName)
                                          .Concurrency(1)).Use(registry);
            receiverThree = new MessageUnit(new EndpointConfiguration().Endpoint(ReceiverThreeEndpointName)
                                            .Concurrency(1)).Use(registry);

            broker.Register(sender)
            .Register(receiverOne)
            .Register(receiverTwo)
            .Register(receiverThree);

            broker.Start();
        }
        /// <summary>
        /// MessageReceived event to keep in track of every interaction among constituents in SoS
        /// </summary>
        /// <param name="from">A reference object to the sender of the message</param>
        /// <param name="target">A reference type to the receiver of the message</param>
        /// <param name="msgText"></param>
        /// <param name="info"></param>
        protected override void OnMessageReceived(object from, Type target, string msgText, params object[] info)
        {
            MessageUnit entry;

            entry = new MessageUnit();

            // Create MessageUnit using the received message
            entry.From      = from.GetType().Name.ToString();
            entry.To        = target.Name.ToString();
            entry.Message   = msgText.ToString();
            entry.Cycle     = this.Cycle;
            entry.Parameter = info;

            // Add current message to the simulation log
            _simLog.Add(entry);

            // update visual text
            if (OnTextUpdate != null)
            {
                // Format message as follows:
                // (SenderAgent->ReceiverAgent).MessageText
                OnTextUpdate(entry.ToString());
            }
        }
 public MessageTreeNode(MessageUnit msg)
     : base(ComputeLabel(msg.KeyOid))
 {
     this.msg = msg;
 }
Пример #7
0
 private InMessageBuilder(MessageUnit messageUnit, string contentType, MessageExchangePattern mep)
 {
     _messageUnit = messageUnit;
     _contentType = contentType;
     _mep         = mep;
 }
Пример #8
0
 private void InsertDuplicateUserMessage(MessageUnit userMessage)
 {
     GetDataStoreContext.InsertInMessage(new InMessage(ebmsMessageId: userMessage.MessageId));
 }
Пример #9
0
 private OutMessageBuilder(MessageUnit messageUnit, string contentType, IPMode pmode)
 {
     _messageUnit = messageUnit;
     _contentType = contentType;
     _pmode       = pmode;
 }