private static void CheckAndUpdateSegment()
 {
     Canary15DataSegment.SampleUtcNow();
     if (Canary15DataSegment.UtcNow >= Canary15DataManager.NextRefreshTime)
     {
         Canary15DataManager.ResetNextRefreshTime();
         Canary15DataManager.RecalculateState();
         if (Canary15DataManager.pendingSegment != null)
         {
             Canary15DataManager.pendingSegment.Trace(8, "CheckAndUpdateSegment()");
             if (Canary15DataManager.pendingSegment.State == Canary15DataSegment.SegmentState.Pending && Canary15DataManager.pendingSegment.NextRefreshTime < Canary15DataSegment.UtcNow)
             {
                 Canary15DataSegment.LoadClientAccessADObject();
                 Canary15DataManager.pendingSegment.ReadSegmentFromAD();
                 Canary15DataManager.NextRefreshTime = Canary15DataManager.pendingSegment.NextRefreshTime;
                 Canary15DataManager.pendingSegment.Trace(8, "CheckAndUpdateSegment()");
                 Canary15DataManager.pendingSegment.LogToIIS(8);
                 return;
             }
         }
         else if (Canary15DataManager.oldSegment != null)
         {
             Canary15DataManager.oldSegment.Trace(8, "CheckAndUpdateSegment()");
             Canary15DataManager.oldSegment.LogToIIS(8);
             Canary15DataManager.activeSegment.Trace(8, "CheckAndUpdateSegment()");
             Canary15DataManager.activeSegment.LogToIIS(8);
             Canary15DataManager.oldSegment.CloneFromSegment(Canary15DataManager.activeSegment);
             Canary15DataManager.oldSegment.Trace(8, "CheckAndUpdateSegment()");
             Canary15DataManager.oldSegment.LogToIIS(8);
             Canary15DataManager.oldSegment.SaveSegmentToAD();
             Canary15DataManager.NextRefreshTime = Canary15DataManager.oldSegment.NextRefreshTime;
         }
     }
 }