diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs index b6c9c613..be4f50a3 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs @@ -1,4 +1,4 @@ -// Copyright (c) 2015, Outercurve Foundation. +// Copyright (c) 2015, Outercurve Foundation. // All rights reserved. // // Redistribution and use in source and binary forms, with or without modification, @@ -57,7 +57,7 @@ namespace WebsitePanel.EnterpriseServer { BackgroundTask topTask = TaskManager.TopTask; var domainUsers = new Dictionary(); - var checkedDomains = new List(); + var checkedDomains = new List(); var expiredDomains = new List(); var nonExistenDomains = new List(); var allDomains = new List(); @@ -101,12 +101,12 @@ namespace WebsitePanel.EnterpriseServer foreach (var domain in domains) { - if (checkedDomains.Contains(domain.DomainId)) + if (checkedDomains.Any(x=> x.DomainId == domain.DomainId)) { continue; } - checkedDomains.Add(domain.DomainId); + checkedDomains.Add(domain); ServerController.UpdateDomainWhoisData(domain); @@ -124,12 +124,11 @@ namespace WebsitePanel.EnterpriseServer } } - var subDomains = allDomains.Where(x => x.ExpirationDate == null || CheckDomainExpiration(x.ExpirationDate, daysBeforeNotify)).GroupBy(p => p.DomainId).Select(g => g.First()).ToList(); - allTopLevelDomains = allTopLevelDomains.GroupBy(p => p.DomainId).Select(g => g.First()).ToList(); + var subDomains = allDomains.Where(x => !checkedDomains.Any(z => z.DomainId == x.DomainId && z.ExpirationDate != null)).GroupBy(p => p.DomainId).Select(g => g.First()).ToList(); foreach (var subDomain in subDomains) { - var mainDomain = allTopLevelDomains.Where(x => subDomain.DomainId != x.DomainId && subDomain.DomainName.ToLowerInvariant().Contains(x.DomainName.ToLowerInvariant())).OrderByDescending(s => s.DomainName.Length).FirstOrDefault(); ; + var mainDomain = checkedDomains.Where(x => subDomain.DomainId != x.DomainId && subDomain.DomainName.ToLowerInvariant().Contains(x.DomainName.ToLowerInvariant())).OrderByDescending(s => s.DomainName.Length).FirstOrDefault(); ; if (mainDomain != null) { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs index d0d17ade..c9aec104 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs @@ -2709,6 +2709,7 @@ namespace WebsitePanel.EnterpriseServer domain.CreationDate = ParseDate(creationDateString); domain.ExpirationDate = ParseDate(expirationDateString); domain.RegistrarName = ParseWhoisDomainInfo(whoisResult.Raw, _registrarNamePatterns); + domain.LastUpdateDate = DateTime.Now; DataProvider.UpdateWhoisDomainInfo(domain.DomainId, domain.CreationDate, domain.ExpirationDate, DateTime.Now, domain.RegistrarName); } @@ -2727,6 +2728,7 @@ namespace WebsitePanel.EnterpriseServer domain.CreationDate = creationDate; domain.ExpirationDate = expirationDate; domain.RegistrarName = registrarName; + domain.LastUpdateDate = DateTime.Now; return domain; }