public void Dispose() { if (TenantMemCache != null) { TenantMemCache.Dispose(); } }
private bool NeedRemove(MailBoxData mailbox, ILog taskLog) { var needRemove = false; lock (Locker) { Defines.TariffType type; var memTenantItem = TenantMemCache.Get(mailbox.TenantId.ToString(CultureInfo.InvariantCulture)); if (memTenantItem == null) { taskLog.InfoFormat("Tenant {0} isn't in cache", mailbox.TenantId); taskLog.DebugFormat("GetTenantStatus(OverdueDays={0})", Config.TenantOverdueDays); type = mailbox.GetTenantStatus(Config.TenantOverdueDays, Config.HttpContextScheme, Log); var cacheItem = new CacheItem(mailbox.TenantId.ToString(CultureInfo.InvariantCulture), type); var cacheItemPolicy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.UtcNow.AddDays(Config.TenantCacheDays) }; TenantMemCache.Add(cacheItem, cacheItemPolicy); } else { taskLog.InfoFormat("Tenant {0} is in cache", mailbox.TenantId); type = (Defines.TariffType)memTenantItem; } taskLog.InfoFormat("Tenant {0} has status '{1}'", mailbox.TenantId, type.ToString()); if (type == Defines.TariffType.LongDead) { needRemove = true; } else { var isUserRemoved = mailbox.IsUserRemoved(); taskLog.InfoFormat("User '{0}' status is '{1}'", mailbox.UserId, isUserRemoved ? "Terminated" : "Not terminated"); if (isUserRemoved) { needRemove = true; } } } return(needRemove); }