예제 #1
0
 public void ProcessRoutingUpdates(string headerValue)
 {
     if (string.IsNullOrEmpty(headerValue))
     {
         throw new ArgumentNullException("headerValue");
     }
     string[] array = headerValue.Split(new char[]
     {
         ','
     });
     foreach (string text in array)
     {
         try
         {
             IRoutingEntry routingEntry = RoutingEntryHeaderSerializer.Deserialize(text);
             if (ServerLocator.IsMailboxServerCacheKey(routingEntry.Key) && routingEntry.Destination.RoutingItemType == RoutingItemType.Server)
             {
                 this.routeRefresherDiagnostics.IncrementTotalMailboxServerCacheUpdateAttempts();
                 if (this.mailboxServerCacheClient.AddEntry(routingEntry))
                 {
                     string value = "MailboxServerCacheUpdate:" + text;
                     this.routeRefresherDiagnostics.AddGenericInfo(value);
                     this.routeRefresherDiagnostics.IncrementSuccessfulMailboxServerCacheUpdates();
                 }
                 else
                 {
                     string value2 = "MailboxServerCacheFailure:" + text;
                     this.routeRefresherDiagnostics.AddErrorInfo(value2);
                 }
             }
             else if (ServerLocator.IsAnchorMailboxCacheKey(routingEntry.Key) && routingEntry.Destination.RoutingItemType == RoutingItemType.DatabaseGuid)
             {
                 this.routeRefresherDiagnostics.IncrementTotalAnchorMailboxCacheUpdateAttempts();
                 if (this.anchorMailboxCacheClient.AddEntry(routingEntry))
                 {
                     string value3 = "AnchorMailboxCacheUpdate:" + text;
                     this.routeRefresherDiagnostics.AddGenericInfo(value3);
                     this.routeRefresherDiagnostics.IncrementSuccessfulAnchorMailboxCacheUpdates();
                 }
                 else
                 {
                     string value4 = "AnchorMailboxCacheFailure:" + text;
                     this.routeRefresherDiagnostics.AddErrorInfo(value4);
                 }
             }
             else
             {
                 string value5 = "UnrecognizedRoutingEntry:" + text;
                 this.routeRefresherDiagnostics.AddErrorInfo(value5);
             }
         }
         catch (ArgumentException)
         {
             string value6 = "DeserializationException:" + text;
             this.routeRefresherDiagnostics.AddErrorInfo(value6);
         }
     }
 }