Disco.Services.Interop.ActiveDirectory.ADDomain.MaintainDomainControllers C# (CSharp) Method

MaintainDomainControllers() private method

private MaintainDomainControllers ( ) : void
return void
        private void MaintainDomainControllers()
        {
            lock (domainMaintainLock)
            {
                var servers = this.domainControllers.ToList();

                var nonSiteServersPresent = servers.Any(s => !s.IsSiteServer);

                if (nonSiteServersPresent)
                {
                    var siteServersAvailable = servers.Any(s => s.IsSiteServer && s.IsAvailable);
                    var nonSiteServersUnavailable = servers.Any(s => !s.IsSiteServer && !s.IsAvailable);

                    if (siteServersAvailable)
                    {
                        // Remove non-site servers
                        UpdateDomainControllers(servers.Where(s => s.IsSiteServer));
                    }
                    else if (nonSiteServersUnavailable)
                    {
                        // Remove unavailable non-site servers
                        UpdateDomainControllers(servers.Where(s => s.IsSiteServer || s.IsAvailable));
                    }
                }
                this.domainMaintenanceNext = DateTime.Now.AddMinutes(DomainMaintanceIntervalMinutes);
            }
        }