private static UnregisterMessageRouteMessage CreateUnregisterMessageRoutePayload(byte[] receiverNodeIdentity, byte[] receiverIdentity = null)
        {
            var payload = new UnregisterMessageRouteMessage
            {
                Routes = EnumerableExtensions
                         .Produce(Randomizer.Int32(2, 5),
                                  () => new RouteRegistration
                {
                    MessageContracts = EnumerableExtensions
                                       .Produce(Randomizer.Int32(2, 5),
                                                () => new MessageContract
                    {
                        Identity  = Guid.NewGuid().ToByteArray(),
                        Version   = Randomizer.UInt16(),
                        Partition = Guid.NewGuid().ToByteArray()
                    })
                                       .ToArray(),
                    ReceiverIdentity = receiverIdentity ?? Guid.NewGuid().ToByteArray()
                })
                         .ToArray(),
                ReceiverNodeIdentity = receiverNodeIdentity
            };

            return(payload);
        }
Ejemplo n.º 2
0
 private IEnumerable <ExternalRouteRemoval> GetUnregistrationRoutes(UnregisterMessageRouteMessage payload, string domain)
 {
     foreach (var route in payload.Routes.SelectMany(r => r.MessageContracts.Select(mc => new MessageRoute
     {
         Receiver = new ReceiverIdentifier(r.ReceiverIdentity),
         Message = new MessageIdentifier(mc.Identity, mc.Version, mc.Partition)
     })))
     {
         if (route.Receiver.IsMessageHub() || securityProvider.GetDomain(route.Message.Identity) == domain)
         {
             yield return(new ExternalRouteRemoval
             {
                 Route = route,
                 NodeIdentifier = payload.ReceiverNodeIdentity
             });
         }
         else
         {
             logger.Warn($"MessageIdentity {route.Message} doesn't belong to requested Domain {domain}!");
         }
     }
 }