Domain Expiration tasks Fixes
This commit is contained in:
parent
7d753484d9
commit
627572f1c7
8 changed files with 77 additions and 8 deletions
|
@ -6254,6 +6254,13 @@ BEGIN
|
|||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS(SELECT * FROM sys.columns
|
||||
WHERE [name] = N'LastUpdateDate' AND [object_id] = OBJECT_ID(N'Domains'))
|
||||
BEGIN
|
||||
ALTER TABLE [dbo].[Domains] ADD LastUpdateDate DateTime null;
|
||||
END
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'ScheduleTasksEmailTemplates')
|
||||
DROP TABLE ScheduleTasksEmailTemplates
|
||||
GO
|
||||
|
@ -6639,6 +6646,18 @@ AS
|
|||
UPDATE [dbo].[Domains] SET [ExpirationDate] = @Date WHERE [DomainID] = @DomainId
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'UpdateDomainLastUpdateDate')
|
||||
DROP PROCEDURE UpdateDomainLastUpdateDate
|
||||
GO
|
||||
CREATE PROCEDURE [dbo].UpdateDomainLastUpdateDate
|
||||
(
|
||||
@DomainId INT,
|
||||
@Date DateTime
|
||||
)
|
||||
AS
|
||||
UPDATE [dbo].[Domains] SET [LastUpdateDate] = @Date WHERE [DomainID] = @DomainId
|
||||
GO
|
||||
|
||||
|
||||
--Updating Domain procedures
|
||||
|
||||
|
@ -6673,6 +6692,7 @@ SELECT
|
|||
D.IsInstantAlias,
|
||||
D.CreationDate,
|
||||
D.ExpirationDate,
|
||||
D.LastUpdateDate,
|
||||
D.IsDomainPointer
|
||||
FROM Domains AS D
|
||||
INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON D.PackageID = PT.PackageID
|
||||
|
@ -6754,6 +6774,7 @@ SET @sql = @sql + ' SELECT COUNT(DomainID) FROM @Domains;SELECT
|
|||
D.IsInstantAlias,
|
||||
D.IsDomainPointer,
|
||||
D.ExpirationDate,
|
||||
D.LastUpdateDate,
|
||||
P.PackageName,
|
||||
ISNULL(SRV.ServerID, 0) AS ServerID,
|
||||
ISNULL(SRV.ServerName, '''') AS ServerName,
|
||||
|
|
|
@ -150,5 +150,6 @@ namespace WebsitePanel.EnterpriseServer
|
|||
|
||||
public DateTime? CreationDate { get; set; }
|
||||
public DateTime? ExpirationDate { get; set; }
|
||||
public DateTime? LastUpdateDate { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4787,6 +4787,11 @@ namespace WebsitePanel.EnterpriseServer
|
|||
UpdateDomainDate(domainId, "UpdateDomainExpirationDate", date);
|
||||
}
|
||||
|
||||
public static void UpdateDomainLastUpdateDate(int domainId, DateTime date)
|
||||
{
|
||||
UpdateDomainDate(domainId, "UpdateDomainLastUpdateDate", date);
|
||||
}
|
||||
|
||||
private static void UpdateDomainDate(int domainId, string stroredProcedure, DateTime date)
|
||||
{
|
||||
SqlHelper.ExecuteReader(
|
||||
|
|
|
@ -53,9 +53,11 @@ namespace WebsitePanel.EnterpriseServer
|
|||
{
|
||||
var domains = ServerController.GetDomains(package.PackageId);
|
||||
|
||||
domains = domains.Where(x => !x.IsSubDomain && !x.IsDomainPointer).ToList(); //Selecting top-level domains
|
||||
var subDomains = domains.Where(x => x.IsSubDomain).ToList();
|
||||
|
||||
domains = domains.Where(x => x.CreationDate == null || x.ExpirationDate == null ? true : CheckDomainExpiration(x.ExpirationDate, daysBeforeNotify)).ToList(); // selecting expired or with empty expire date domains
|
||||
var topLevelDomains = domains = domains.Where(x => !x.IsSubDomain && !x.IsDomainPointer).ToList(); //Selecting top-level domains
|
||||
|
||||
domains = topLevelDomains.Where(x => x.CreationDate == null || x.ExpirationDate == null ? true : CheckDomainExpiration(x.ExpirationDate, daysBeforeNotify)).ToList(); // selecting expired or with empty expire date domains
|
||||
|
||||
var domainUser = UserController.GetUser(package.UserId);
|
||||
|
||||
|
@ -80,6 +82,16 @@ namespace WebsitePanel.EnterpriseServer
|
|||
expiredDomains.Add(domain);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var subDomain in subDomains)
|
||||
{
|
||||
var mainDomain = topLevelDomains.Where(x => subDomain.DomainName.Contains(x.DomainName)).OrderByDescending(s => s.DomainName.Length).FirstOrDefault(); ;
|
||||
|
||||
if (mainDomain != null)
|
||||
{
|
||||
ServerController.UpdateDomainRegistrationData(subDomain, mainDomain.CreationDate, mainDomain.ExpirationDate);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
expiredDomains = expiredDomains.GroupBy(p => p.DomainId).Select(g => g.First()).ToList();
|
||||
|
|
|
@ -2664,6 +2664,8 @@ namespace WebsitePanel.EnterpriseServer
|
|||
{
|
||||
try
|
||||
{
|
||||
DataProvider.UpdateDomainLastUpdateDate(domain.DomainId, DateTime.Now);
|
||||
|
||||
var whoisResult = WhoisClient.Query(domain.DomainName);
|
||||
|
||||
var createdDate = GetDomainInfoDate(whoisResult.Raw, _createdDatePatterns);
|
||||
|
@ -2689,6 +2691,17 @@ namespace WebsitePanel.EnterpriseServer
|
|||
return domain;
|
||||
}
|
||||
|
||||
public static DomainInfo UpdateDomainRegistrationData(DomainInfo domain, DateTime? creationDate, DateTime? expirationDate)
|
||||
{
|
||||
domain.CreationDate = creationDate;
|
||||
DataProvider.UpdateDomainCreationDate(domain.DomainId, creationDate.Value);
|
||||
domain.ExpirationDate = expirationDate;
|
||||
DataProvider.UpdateDomainExpirationDate(domain.DomainId, expirationDate.Value);
|
||||
DataProvider.UpdateDomainLastUpdateDate(domain.DomainId, DateTime.Now);
|
||||
|
||||
return domain;
|
||||
}
|
||||
|
||||
private static DateTime? GetDomainInfoDate(string raw, IEnumerable<string> patterns)
|
||||
{
|
||||
foreach (var createdRegex in patterns)
|
||||
|
|
|
@ -207,4 +207,10 @@
|
|||
<data name="gvDomainsExpirationDate.Header" xml:space="preserve">
|
||||
<value>Expiration Date</value>
|
||||
</data>
|
||||
<data name="DomainExpirationDate.NotChecked" xml:space="preserve">
|
||||
<value>Not Checked</value>
|
||||
</data>
|
||||
<data name="DomainExpirationDate.NotExist" xml:space="preserve">
|
||||
<value>Non-Existent</value>
|
||||
</data>
|
||||
</root>
|
|
@ -40,7 +40,7 @@
|
|||
<asp:TemplateField HeaderText="gvDomainsExpirationDate">
|
||||
<ItemStyle Width="15%"></ItemStyle>
|
||||
<ItemTemplate>
|
||||
<%# GetDomainExpirationDate(Eval("ExpirationDate"))%>
|
||||
<%# GetDomainExpirationDate(Eval("ExpirationDate"), Eval("LastUpdateDate"))%>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField HeaderText="gvDomainsType">
|
||||
|
|
|
@ -100,17 +100,28 @@ namespace WebsitePanel.Portal
|
|||
return GetLocalizedString("DomainType.Domain");
|
||||
}
|
||||
|
||||
public string GetDomainExpirationDate(object expirationDateObject)
|
||||
public string GetDomainExpirationDate(object expirationDateObject, object LastUpdateDateObject)
|
||||
{
|
||||
var expirationDate = expirationDateObject as DateTime?;
|
||||
var lastUpdateDate = LastUpdateDateObject as DateTime?;
|
||||
|
||||
if (expirationDate == null)
|
||||
return GetLocalizedString("DomainExpirationDate.Unknown");
|
||||
else if (expirationDate < DateTime.Now)
|
||||
if (expirationDate != null && expirationDate < DateTime.Now)
|
||||
{
|
||||
return GetLocalizedString("DomainExpirationDate.Expired");
|
||||
else
|
||||
}
|
||||
else if(expirationDate != null)
|
||||
{
|
||||
return expirationDate.Value.ToShortDateString();
|
||||
}
|
||||
else if (lastUpdateDate == null)
|
||||
{
|
||||
return GetLocalizedString("DomainExpirationDate.NotChecked");
|
||||
}
|
||||
else
|
||||
{
|
||||
return GetLocalizedString("DomainExpirationDate.NotExist");
|
||||
}
|
||||
}
|
||||
|
||||
protected void odsDomainsPaged_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue