public void BeforeConversionToEntity(string key, RavenJObject document, RavenJObject metadata)
        {
            if (!IsTimeoutData(metadata))
            {
                return;
            }

            document["Destination"] = LegacyAddress.ParseToString(() => document["Destination"]);
        }
        public static SubscriptionClient ParseToSubscriptionClient(LegacyAddress address)
        {
            var queue = address.Queue;
            var machine = address.Machine;

            // Previously known as IgnoreMachineName (for brokers)
            if (string.IsNullOrEmpty(machine))
            {
                return new SubscriptionClient { TransportAddress = queue, Endpoint = null };
            }

            return new SubscriptionClient { TransportAddress = queue + "@" + machine, Endpoint = null };
        }
        public void BeforeConversionToDocument(string key, object entity, RavenJObject metadata)
        {
            var subscription = entity as Subscription;

            if (subscription == null)
            {
                return;
            }

            var converted = LegacyAddress.ConvertMultipleToLegacyAddress(subscription.Subscribers);

            subscription.LegacySubscriptions.Clear();
            subscription.LegacySubscriptions.AddRange(converted);
        }
        public static SubscriptionClient ParseToSubscriptionClient(LegacyAddress address)
        {
            var queue   = address.Queue;
            var machine = address.Machine;

            // Previously known as IgnoreMachineName (for brokers)
            if (string.IsNullOrEmpty(machine))
            {
                return(new SubscriptionClient {
                    TransportAddress = queue, Endpoint = null
                });
            }

            return(new SubscriptionClient {
                TransportAddress = queue + "@" + machine, Endpoint = null
            });
        }
        public void AfterConversionToEntity(string key, RavenJObject document, RavenJObject metadata, object entity)
        {
            var subscription = entity as Subscription;

            if (subscription == null)
            {
                return;
            }

            var clients = document["Clients"];

            if (clients != null)
            {
                var converted = LegacyAddress.ParseMultipleToSubscriptionClient(subscription.LegacySubscriptions);

                var legacySubscriptions = converted.Except(subscription.Subscribers).ToArray();
                foreach (var legacySubscription in legacySubscriptions)
                {
                    subscription.Subscribers.Add(legacySubscription);
                }
            }
        }
 bool Equals(LegacyAddress obj) => string.Equals(Queue, obj.Queue) && string.Equals(Machine, obj.Machine);
 bool Equals(LegacyAddress obj) => string.Equals(Queue, obj.Queue) && string.Equals(Machine, obj.Machine);