Disco.Services.Interop.ActiveDirectory.ActiveDirectoryGroupCache.CleanCache C# (CSharp) Method

CleanCache() private method

private CleanCache ( ) : void
return void
        private void CleanCache()
        {
            DateTime now = DateTime.Now;

            // Clean Cache
            var dnKeys = distinguishedNameCache.Keys.ToArray();
            foreach (var dnKey in dnKeys)
            {
                Tuple<ADGroup, DateTime> groupRecord;
                if (distinguishedNameCache.TryGetValue(dnKey, out groupRecord))
                {
                    if (groupRecord.Item2 <= now)
                    {
                        distinguishedNameCache.TryRemove(dnKey, out groupRecord);
                    }
                }
            }

            // Clean SID Cache
            var siKeys = securityIdentifierCache.Keys.ToArray();
            foreach (var siKey in siKeys)
            {
                Tuple<ADGroup, DateTime> groupRecord;
                if (securityIdentifierCache.TryGetValue(siKey, out groupRecord))
                {
                    if (groupRecord.Item2 <= now)
                    {
                        securityIdentifierCache.TryRemove(siKey, out groupRecord);
                    }
                }
            }

            // Schedule Next Clean
            cacheCleanNext = now.AddMinutes(CacheCleanIntervalMinutes);
            cacheCleanTask = null;
        }