public static QueueAddress TranslateLogicalAddress(Transport.QueueAddress queueAddress)
        {
            var nonEmptyParts = new[]
            {
                queueAddress.BaseAddress,
                queueAddress.Qualifier,
                queueAddress.Discriminator
            }.Where(p => !string.IsNullOrEmpty(p));

            var tableName = string.Join(".", nonEmptyParts);


            string schemaName  = null;
            string catalogName = null;

            if (queueAddress.Properties != null)
            {
                queueAddress?.Properties.TryGetValue(SettingsKeys.SchemaPropertyKey, out schemaName);
                queueAddress?.Properties.TryGetValue(SettingsKeys.CatalogPropertyKey, out catalogName);
            }

            return(new QueueAddress(tableName, schemaName, catalogName));
        }
 public QueueAddress Generate(Transport.QueueAddress queueAddress)
 {
     return(logicalAddressCache.GetOrAdd(queueAddress, TranslateLogicalAddress));
 }