// Token: 0x0600077C RID: 1916 RVA: 0x0001D494 File Offset: 0x0001B694
 private bool IsServerInBackendList(IEnumerable <BackEndServer> serverList, BackEndServer backendServer)
 {
     return(serverList.Any((BackEndServer server) => string.Equals(server.Fqdn, backendServer.Fqdn, StringComparison.OrdinalIgnoreCase)));
 }
示例#2
0
 public static Uri GetBackEndWebServicesUrl(BackEndServer backEndServer)
 {
     return(BackEndLocator.GetBackEndHttpServiceUrl <WebServicesService>(backEndServer));
 }
        // Token: 0x0600080E RID: 2062 RVA: 0x00020900 File Offset: 0x0001EB00
        public BackEndServer EndGetServer(IAsyncResult result)
        {
            if (result == null)
            {
                throw new ArgumentNullException("result");
            }
            lock (this.lockObject)
            {
                base.CheckDisposed();
            }
            BackEndServer result2;

            try
            {
                MailboxServerLocator.DummyAsyncResult dummyAsyncResult = result as MailboxServerLocator.DummyAsyncResult;
                if (dummyAsyncResult != null)
                {
                    this.CheckDownLevelServerForest();
                    BackEndServer backEndServer = null;
                    if (this.masterServer.VersionNumber < Server.E14MinVersion || this.SkipServerLocatorQuery)
                    {
                        backEndServer = new BackEndServer(this.masterServer.Fqdn, this.masterServer.VersionNumber);
                    }
                    else
                    {
                        lock (this.lockObject)
                        {
                            backEndServer = this.GetLegacyServerForDatabase(this.DatabaseGuid);
                        }
                    }
                    if (backEndServer != null)
                    {
                        this.AvailabilityGroupServers = new Dictionary <Guid, BackEndServer>(1);
                        this.AvailabilityGroupServers.Add(this.DatabaseGuid, backEndServer);
                    }
                    result2 = backEndServer;
                }
                else
                {
                    lock (this.lockObject)
                    {
                        if (this.serverLocator == null)
                        {
                            throw new InvalidOperationException("BeginGetServerForDatabase() was not executed.");
                        }
                        if (!object.ReferenceEquals(result, this.lazyAsyncResult))
                        {
                            throw new InvalidOperationException("Calling with the wrong instance of IAsyncResult.");
                        }
                    }
                    this.lazyAsyncResult.InternalWaitForCompletion();
                    lock (this.lockObject)
                    {
                        if (this.asyncException != null)
                        {
                            this.Tracer.TraceError <Exception>((long)this.GetHashCode(), "[MailboxServerLocator.EndGetServer] Throwing async exception {0}.", this.asyncException);
                            throw this.asyncException;
                        }
                        result2 = this.AvailabilityGroupServers[this.DatabaseGuid];
                    }
                }
            }
            finally
            {
                this.Latency = this.stopWatch.ElapsedMilliseconds;
            }
            return(result2);
        }