Exemplo n.º 1
0
        public static IRoutingKey CreateRoutingKey(this IRoutingDestination destination)
        {
            DatabaseGuidRoutingDestination databaseGuidRoutingDestination = destination as DatabaseGuidRoutingDestination;

            if (databaseGuidRoutingDestination != null)
            {
                return(new DatabaseGuidRoutingKey(databaseGuidRoutingDestination.DatabaseGuid, databaseGuidRoutingDestination.DomainName, databaseGuidRoutingDestination.ResourceForest));
            }
            return(null);
        }
Exemplo n.º 2
0
 public GenericRoutingEntry(IRoutingKey key, IRoutingDestination destination, long timestamp)
 {
     if (key == null)
     {
         throw new ArgumentNullException("key");
     }
     if (destination == null)
     {
         throw new ArgumentNullException("destination");
     }
     this.key         = key;
     this.destination = destination;
     this.timestamp   = timestamp;
 }
Exemplo n.º 3
0
        public static IRoutingEntry Deserialize(string headerValue)
        {
            if (headerValue == null)
            {
                throw new ArgumentNullException("headerValue");
            }
            RoutingEntryHeaderSerializer.RoutingEntryParts routingEntryParts;
            if (!RoutingEntryHeaderSerializer.TrySplitEntry(headerValue, out routingEntryParts))
            {
                throw new ArgumentException("Value is incorrectly formatted", "headerValue");
            }
            IRoutingKey         key         = RoutingEntryHeaderSerializer.DeserializeRoutingKey(routingEntryParts.KeyType, routingEntryParts.KeyValue);
            IRoutingDestination destination = RoutingEntryHeaderSerializer.DeserializeRoutingDestination(routingEntryParts.DestinationType, routingEntryParts.DestinationValue);

            return(RoutingEntryHeaderSerializer.AssembleRoutingEntry(key, destination, routingEntryParts.Timestamp));
        }
Exemplo n.º 4
0
 private static IRoutingEntry AssembleRoutingEntry(IRoutingKey key, IRoutingDestination destination, long timestamp)
 {
     if (key is ServerRoutingKey)
     {
         if (destination is ServerRoutingDestination)
         {
             return(new SuccessfulServerRoutingEntry((ServerRoutingKey)key, (ServerRoutingDestination)destination, timestamp));
         }
         if (destination is ErrorRoutingDestination)
         {
             return(new FailedServerRoutingEntry((ServerRoutingKey)key, (ErrorRoutingDestination)destination, timestamp));
         }
     }
     if (key is DatabaseGuidRoutingKey)
     {
         if (destination is ServerRoutingDestination)
         {
             return(new SuccessfulDatabaseGuidRoutingEntry((DatabaseGuidRoutingKey)key, (ServerRoutingDestination)destination, timestamp));
         }
         if (destination is ErrorRoutingDestination)
         {
             return(new FailedDatabaseGuidRoutingEntry((DatabaseGuidRoutingKey)key, (ErrorRoutingDestination)destination, timestamp));
         }
     }
     else if (key is ArchiveSmtpRoutingKey || key is MailboxGuidRoutingKey || key is SmtpRoutingKey || key is ExternalDirectoryObjectIdRoutingKey || key is LiveIdMemberNameRoutingKey)
     {
         if (destination is DatabaseGuidRoutingDestination)
         {
             return(new SuccessfulMailboxRoutingEntry(key, (DatabaseGuidRoutingDestination)destination, timestamp));
         }
         if (destination is ErrorRoutingDestination)
         {
             return(new FailedMailboxRoutingEntry(key, (ErrorRoutingDestination)destination, timestamp));
         }
     }
     return(new GenericRoutingEntry(key, destination, timestamp));
 }