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
|
END
|
||||||
GO
|
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')
|
IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'ScheduleTasksEmailTemplates')
|
||||||
DROP TABLE ScheduleTasksEmailTemplates
|
DROP TABLE ScheduleTasksEmailTemplates
|
||||||
GO
|
GO
|
||||||
|
@ -6639,6 +6646,18 @@ AS
|
||||||
UPDATE [dbo].[Domains] SET [ExpirationDate] = @Date WHERE [DomainID] = @DomainId
|
UPDATE [dbo].[Domains] SET [ExpirationDate] = @Date WHERE [DomainID] = @DomainId
|
||||||
GO
|
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
|
--Updating Domain procedures
|
||||||
|
|
||||||
|
@ -6673,6 +6692,7 @@ SELECT
|
||||||
D.IsInstantAlias,
|
D.IsInstantAlias,
|
||||||
D.CreationDate,
|
D.CreationDate,
|
||||||
D.ExpirationDate,
|
D.ExpirationDate,
|
||||||
|
D.LastUpdateDate,
|
||||||
D.IsDomainPointer
|
D.IsDomainPointer
|
||||||
FROM Domains AS D
|
FROM Domains AS D
|
||||||
INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON D.PackageID = PT.PackageID
|
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.IsInstantAlias,
|
||||||
D.IsDomainPointer,
|
D.IsDomainPointer,
|
||||||
D.ExpirationDate,
|
D.ExpirationDate,
|
||||||
|
D.LastUpdateDate,
|
||||||
P.PackageName,
|
P.PackageName,
|
||||||
ISNULL(SRV.ServerID, 0) AS ServerID,
|
ISNULL(SRV.ServerID, 0) AS ServerID,
|
||||||
ISNULL(SRV.ServerName, '''') AS ServerName,
|
ISNULL(SRV.ServerName, '''') AS ServerName,
|
||||||
|
|
|
@ -150,5 +150,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public DateTime? CreationDate { get; set; }
|
public DateTime? CreationDate { get; set; }
|
||||||
public DateTime? ExpirationDate { get; set; }
|
public DateTime? ExpirationDate { get; set; }
|
||||||
|
public DateTime? LastUpdateDate { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4787,6 +4787,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
UpdateDomainDate(domainId, "UpdateDomainExpirationDate", date);
|
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)
|
private static void UpdateDomainDate(int domainId, string stroredProcedure, DateTime date)
|
||||||
{
|
{
|
||||||
SqlHelper.ExecuteReader(
|
SqlHelper.ExecuteReader(
|
||||||
|
|
|
@ -53,9 +53,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
var domains = ServerController.GetDomains(package.PackageId);
|
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);
|
var domainUser = UserController.GetUser(package.UserId);
|
||||||
|
|
||||||
|
@ -80,6 +82,16 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
expiredDomains.Add(domain);
|
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();
|
expiredDomains = expiredDomains.GroupBy(p => p.DomainId).Select(g => g.First()).ToList();
|
||||||
|
|
|
@ -2664,6 +2664,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
DataProvider.UpdateDomainLastUpdateDate(domain.DomainId, DateTime.Now);
|
||||||
|
|
||||||
var whoisResult = WhoisClient.Query(domain.DomainName);
|
var whoisResult = WhoisClient.Query(domain.DomainName);
|
||||||
|
|
||||||
var createdDate = GetDomainInfoDate(whoisResult.Raw, _createdDatePatterns);
|
var createdDate = GetDomainInfoDate(whoisResult.Raw, _createdDatePatterns);
|
||||||
|
@ -2689,6 +2691,17 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return domain;
|
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)
|
private static DateTime? GetDomainInfoDate(string raw, IEnumerable<string> patterns)
|
||||||
{
|
{
|
||||||
foreach (var createdRegex in patterns)
|
foreach (var createdRegex in patterns)
|
||||||
|
|
|
@ -207,4 +207,10 @@
|
||||||
<data name="gvDomainsExpirationDate.Header" xml:space="preserve">
|
<data name="gvDomainsExpirationDate.Header" xml:space="preserve">
|
||||||
<value>Expiration Date</value>
|
<value>Expiration Date</value>
|
||||||
</data>
|
</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>
|
</root>
|
|
@ -40,7 +40,7 @@
|
||||||
<asp:TemplateField HeaderText="gvDomainsExpirationDate">
|
<asp:TemplateField HeaderText="gvDomainsExpirationDate">
|
||||||
<ItemStyle Width="15%"></ItemStyle>
|
<ItemStyle Width="15%"></ItemStyle>
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<%# GetDomainExpirationDate(Eval("ExpirationDate"))%>
|
<%# GetDomainExpirationDate(Eval("ExpirationDate"), Eval("LastUpdateDate"))%>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:TemplateField HeaderText="gvDomainsType">
|
<asp:TemplateField HeaderText="gvDomainsType">
|
||||||
|
|
|
@ -100,16 +100,27 @@ namespace WebsitePanel.Portal
|
||||||
return GetLocalizedString("DomainType.Domain");
|
return GetLocalizedString("DomainType.Domain");
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetDomainExpirationDate(object expirationDateObject)
|
public string GetDomainExpirationDate(object expirationDateObject, object LastUpdateDateObject)
|
||||||
{
|
{
|
||||||
var expirationDate = expirationDateObject as DateTime?;
|
var expirationDate = expirationDateObject as DateTime?;
|
||||||
|
var lastUpdateDate = LastUpdateDateObject as DateTime?;
|
||||||
|
|
||||||
if (expirationDate == null)
|
if (expirationDate != null && expirationDate < DateTime.Now)
|
||||||
return GetLocalizedString("DomainExpirationDate.Unknown");
|
{
|
||||||
else if (expirationDate < DateTime.Now)
|
|
||||||
return GetLocalizedString("DomainExpirationDate.Expired");
|
return GetLocalizedString("DomainExpirationDate.Expired");
|
||||||
else
|
}
|
||||||
|
else if(expirationDate != null)
|
||||||
|
{
|
||||||
return expirationDate.Value.ToShortDateString();
|
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)
|
protected void odsDomainsPaged_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue