Domain Expiration task fixes

This commit is contained in:
vfedosevich 2014-12-08 06:10:22 -08:00
parent 1fbacb828c
commit f8f7f196c4
9 changed files with 52 additions and 49 deletions

View file

@ -6154,29 +6154,29 @@ GO
-- Domain lookup tasks -- Domain lookup tasks
IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTasks] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP') --IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTasks] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP')
BEGIN --BEGIN
INSERT [dbo].[ScheduleTasks] ([TaskID], [TaskType], [RoleID]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'WebsitePanel.EnterpriseServer.DomainLookupViewTask, WebsitePanel.EnterpriseServer.Code', 1) --INSERT [dbo].[ScheduleTasks] ([TaskID], [TaskType], [RoleID]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'WebsitePanel.EnterpriseServer.DomainLookupViewTask, WebsitePanel.EnterpriseServer.Code', 1)
END --END
GO --GO
IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskViewConfiguration] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP') --IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskViewConfiguration] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP')
BEGIN --BEGIN
INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx') --INSERT [dbo].[ScheduleTaskViewConfiguration] ([TaskID], [ConfigurationID], [Environment], [Description]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'ASP_NET', N'ASP.NET', N'~/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx')
END --END
GO --GO
IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP' AND [ParameterID]= N'DNS_SERVERS' ) --IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP' AND [ParameterID]= N'DNS_SERVERS' )
BEGIN --BEGIN
INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'DNS_SERVERS', N'String', NULL, 1) --INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'DNS_SERVERS', N'String', NULL, 1)
END --END
GO --GO
IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP' AND [ParameterID]= N'MAIL_TO' ) --IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP' AND [ParameterID]= N'MAIL_TO' )
BEGIN --BEGIN
INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'MAIL_TO', N'String', NULL, 2) --INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'MAIL_TO', N'String', NULL, 2)
END --END
GO --GO
-- Domain Expiration Task -- Domain Expiration Task
@ -6253,14 +6253,15 @@ GO
CREATE TABLE ScheduleTasksEmailTemplates CREATE TABLE ScheduleTasksEmailTemplates
( (
[TaskID] [nvarchar](100) NOT NULL, [TaskID] [nvarchar](100) NOT NULL,
[ParameterID] [nvarchar](100) NOT NULL, [From] [nvarchar](100) NOT NULL,
[Value] [nvarchar](Max) NULL [Subject] [nvarchar](Max) NULL,
[Template] [nvarchar](Max) NULL
) )
GO GO
IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTasksEmailTemplates] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_EXPIRATION' AND [ParameterID]= N'MAIL_BODY' ) IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTasksEmailTemplates] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_EXPIRATION')
BEGIN BEGIN
INSERT [dbo].[ScheduleTasksEmailTemplates] ([TaskID], [ParameterID], [Value]) VALUES (N'SCHEDULE_TASK_DOMAIN_EXPIRATION', N'MAIL_BODY', N' INSERT [dbo].[ScheduleTasksEmailTemplates] ([TaskID], [From], [Subject], [Template]) VALUES (N'SCHEDULE_TASK_DOMAIN_EXPIRATION', N'wsp-scheduler@noreply.net', N'Domain expiration notification', N'
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<title>Domain Expiration Information</title> <title>Domain Expiration Information</title>
@ -6354,15 +6355,15 @@ DROP PROCEDURE GetScheduleTaskEmailTemplate
GO GO
CREATE PROCEDURE [dbo].GetScheduleTaskEmailTemplate CREATE PROCEDURE [dbo].GetScheduleTaskEmailTemplate
( (
@TaskID [nvarchar](100) , @TaskID [nvarchar](100)
@ParameterID [nvarchar](100)
) )
AS AS
SELECT SELECT
[TaskID], [TaskID],
[ParameterID], [From] ,
[Value] [Subject] ,
FROM [dbo].[ScheduleTasksEmailTemplates] where [TaskID] = @TaskID AND [ParameterID] = @ParameterID [Template]
FROM [dbo].[ScheduleTasksEmailTemplates] where [TaskID] = @TaskID
GO GO
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetDomainDnsRecords') IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetDomainDnsRecords')

View file

@ -4757,14 +4757,13 @@ namespace WebsitePanel.EnterpriseServer
); );
} }
public static IDataReader GetScheduleTaskEmailTemplate(string taskId, string parameterId) public static IDataReader GetScheduleTaskEmailTemplate(string taskId)
{ {
return SqlHelper.ExecuteReader( return SqlHelper.ExecuteReader(
ConnectionString, ConnectionString,
CommandType.StoredProcedure, CommandType.StoredProcedure,
"GetScheduleTaskEmailTemplate", "GetScheduleTaskEmailTemplate",
new SqlParameter("@taskId", taskId), new SqlParameter("@taskId", taskId)
new SqlParameter("@parameterId", parameterId)
); );
} }

View file

@ -116,19 +116,21 @@ namespace WebsitePanel.EnterpriseServer
{ {
BackgroundTask topTask = TaskManager.TopTask; BackgroundTask topTask = TaskManager.TopTask;
var bodyTemplate = ObjectUtils.FillObjectFromDataReader<ScheduleTaskEmailTemplate>(DataProvider.GetScheduleTaskEmailTemplate(TaskId, MailBodyTemplateParameter)); var template = ObjectUtils.FillObjectFromDataReader<ScheduleTaskEmailTemplate>(DataProvider.GetScheduleTaskEmailTemplate(TaskId));
// input parameters // input parameters
string mailFrom = "wsp-scheduler@noreply.net"; string mailFrom = template.From;
string mailTo = (string)topTask.GetParamValue("MAIL_TO"); string mailTo = (string)topTask.GetParamValue("MAIL_TO");
string mailSubject = "Domain expiration notification"; string mailSubject = template.Subject;
Hashtable items = new Hashtable(); Hashtable items = new Hashtable();
items["user"] = user; items["user"] = user;
items["Domains"] = domains.Select(x => new { DomainName = x.DomainName, ExpirationDate = x.ExpirationDate, Customer = string.Format("{0} {1}", domainUsers[x.PackageId].FirstName, domainUsers[x.PackageId].LastName) }); items["Domains"] = domains.Select(x => new { DomainName = x.DomainName,
ExpirationDate = x.ExpirationDate,
Customer = string.Format("{0} {1}", domainUsers[x.PackageId].FirstName, domainUsers[x.PackageId].LastName) });
var mailBody = PackageController.EvaluateTemplate(bodyTemplate.Value, items); var mailBody = PackageController.EvaluateTemplate(template.Template, items);
// send mail message // send mail message
MailHelper.SendMessage(mailFrom, mailTo, mailSubject, mailBody, true); MailHelper.SendMessage(mailFrom, mailTo, mailSubject, mailBody, true);

View file

@ -204,8 +204,8 @@ namespace WebsitePanel.EnterpriseServer
{ {
BackgroundTask topTask = TaskManager.TopTask; BackgroundTask topTask = TaskManager.TopTask;
var bodyTempalte = ObjectUtils.FillObjectFromDataReader<ScheduleTaskEmailTemplate>(DataProvider.GetScheduleTaskEmailTemplate(TaskId, MailBodyTemplateParameter)); var bodyTempalte = ObjectUtils.FillObjectFromDataReader<ScheduleTaskEmailTemplate>(DataProvider.GetScheduleTaskEmailTemplate(TaskId));
var domainRecordTemplate = ObjectUtils.FillObjectFromDataReader<ScheduleTaskEmailTemplate>(DataProvider.GetScheduleTaskEmailTemplate(TaskId, MailBodyDomainRecordTemplateParameter)); var domainRecordTemplate = ObjectUtils.FillObjectFromDataReader<ScheduleTaskEmailTemplate>(DataProvider.GetScheduleTaskEmailTemplate(TaskId));
// input parameters // input parameters
string mailFrom = "wsp-scheduler@noreply.net"; string mailFrom = "wsp-scheduler@noreply.net";
@ -228,7 +228,7 @@ namespace WebsitePanel.EnterpriseServer
{ {
foreach (var record in dnsChanged.DnsRecordsCompare.Where(x=>x.Status != DomainDnsRecordStatuses.NotChanged)) foreach (var record in dnsChanged.DnsRecordsCompare.Where(x=>x.Status != DomainDnsRecordStatuses.NotChanged))
{ {
var tableRow = Utils.ReplaceStringVariable(domainRecordTemplate.Value, "domain", domain.Domain); var tableRow = Utils.ReplaceStringVariable(domainRecordTemplate.Template, "domain", domain.Domain);
tableRow = Utils.ReplaceStringVariable(tableRow, "dns", dnsChanged.DnsServer); tableRow = Utils.ReplaceStringVariable(tableRow, "dns", dnsChanged.DnsServer);
tableRow = Utils.ReplaceStringVariable(tableRow, "recordType", record.Type.ToString()); tableRow = Utils.ReplaceStringVariable(tableRow, "recordType", record.Type.ToString());
tableRow = Utils.ReplaceStringVariable(tableRow, "dbRecord", record.DbRecord != null ? record.DbRecord.Value : "-"); tableRow = Utils.ReplaceStringVariable(tableRow, "dbRecord", record.DbRecord != null ? record.DbRecord.Value : "-");
@ -240,7 +240,7 @@ namespace WebsitePanel.EnterpriseServer
} }
var mailBody = Utils.ReplaceStringVariable(bodyTempalte.Value, "RecordRow", string.Join(" ", tableRecords)); var mailBody = Utils.ReplaceStringVariable(bodyTempalte.Template, "RecordRow", string.Join(" ", tableRecords));
// send mail message // send mail message
MailHelper.SendMessage(mailFrom, mailTo, mailSubject, mailBody, true); MailHelper.SendMessage(mailFrom, mailTo, mailSubject, mailBody, true);

View file

@ -5,11 +5,11 @@
</configSections> </configSections>
<!-- Connection strings --> <!-- Connection strings -->
<connectionStrings> <connectionStrings>
<add name="EnterpriseServer" connectionString="server=dev-sql;database=WebsitePanel;uid=WebsitePanel;pwd=sbbk40q85dc7jzj8b5kn;" providerName="System.Data.SqlClient" /> <add name="EnterpriseServer" connectionString="Server=(local)\SQLExpress;Database=WebsitePanel;uid=sa;pwd=Password12" providerName="System.Data.SqlClient"/>
</connectionStrings> </connectionStrings>
<appSettings> <appSettings>
<!-- Encryption util settings --> <!-- Encryption util settings -->
<add key="WebsitePanel.CryptoKey" value="jj2n22t2kje035cg4l77" /> <add key="WebsitePanel.CryptoKey" value="1234567890"/>
<!-- A1D4KDHUE83NKHddF --> <!-- A1D4KDHUE83NKHddF -->
<add key="WebsitePanel.EncryptionEnabled" value="true"/> <add key="WebsitePanel.EncryptionEnabled" value="true"/>
<!-- Web Applications --> <!-- Web Applications -->

View file

@ -8,7 +8,8 @@ namespace WebsitePanel.Providers.DomainLookup
public class ScheduleTaskEmailTemplate public class ScheduleTaskEmailTemplate
{ {
public string TaskId { get; set; } public string TaskId { get; set; }
public string ParameterID { get; set; } public string From { get; set; }
public string Value { get; set; } public string Subject { get; set; }
public string Template { get; set; }
} }
} }

View file

@ -8,7 +8,7 @@
</startup> </startup>
<appSettings> <appSettings>
<!-- Encryption util settings --> <!-- Encryption util settings -->
<add key="WebsitePanel.CryptoKey" value="jj2n22t2kje035cg4l77"/> <add key="WebsitePanel.CryptoKey" value="0123456789"/>
<!-- A1D4KDHUE83NKHddF --> <!-- A1D4KDHUE83NKHddF -->
<add key="WebsitePanel.EncryptionEnabled" value="true" /> <add key="WebsitePanel.EncryptionEnabled" value="true" />
</appSettings> </appSettings>

View file

@ -50,7 +50,7 @@
<!-- Perform security check --> <!-- Perform security check -->
<enabled value="true" /> <enabled value="true" />
<!-- Server password --> <!-- Server password -->
<password value="TaIF+82DBVpZ/Ix216bG/o02fUE=" /> <password value="+uxnDOdf55yuH6iZYXgYAxsfIBw=" />
</security> </security>
</websitepanel.server> </websitepanel.server>
<system.web> <system.web>

View file

@ -24,7 +24,7 @@
<asp:Label ID="lblDayBeforeNotify" runat="server" meta:resourcekey="lblDayBeforeNotify" Text="Notify before:"></asp:Label> <asp:Label ID="lblDayBeforeNotify" runat="server" meta:resourcekey="lblDayBeforeNotify" Text="Notify before:"></asp:Label>
</td> </td>
<td class="Normal" width="100%"> <td class="Normal" width="100%">
<asp:TextBox ID="txtDaysBeforeNotify" runat="server" Width="95%" CssClass="NormalTextBox" MaxLength="1000"></asp:TextBox><br /> <asp:TextBox ID="txtDaysBeforeNotify" runat="server" Width="95%" CssClass="NormalTextBox" MaxLength="1000"></asp:TextBox>
<asp:Label ID="lblDayBeforeNotifyHint" runat="server" meta:resourcekey="lblDayBeforeNotifyHint" Text="Number of days before expiration date"></asp:Label> <asp:Label ID="lblDayBeforeNotifyHint" runat="server" meta:resourcekey="lblDayBeforeNotifyHint" Text="Number of days before expiration date"></asp:Label>
</td> </td>
</tr> </tr>