DomainLookup Task fixes

This commit is contained in:
vfedosevich 2014-12-12 00:40:58 -08:00
parent f3ceabf4cc
commit 3fc43037bf
16 changed files with 155 additions and 255 deletions

View file

@ -6178,6 +6178,12 @@ INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [D
END END
GO GO
IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP' AND [ParameterID]= N'SERVER_NAME' )
BEGIN
INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'SERVER_NAME', N'String', NULL, 3)
END
GO
-- Domain Expiration Task -- Domain Expiration Task

View file

@ -813,24 +813,6 @@ namespace WebsitePanel.EnterpriseServer
#endregion
#region Domain DNS Records lookup
public static List<DnsRecordInfo> GetDomainRecords(int packageId, string domain, string dnsServer, DnsRecordType recordType)
{
List<DnsRecordInfo> records = new List<DnsRecordInfo>();
// load OS service
int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Os);
var os = GetOS(serviceId);
records = os.GetDomainDnsRecords(domain, dnsServer, recordType).ToList();
return records;
}
#endregion #endregion
} }

View file

@ -92,7 +92,7 @@ namespace WebsitePanel.EnterpriseServer
foreach (var subDomain in subDomains) foreach (var subDomain in subDomains)
{ {
var mainDomain = topLevelDomains.Where(x => subDomain.DomainName.Contains(x.DomainName)).OrderByDescending(s => s.DomainName.Length).FirstOrDefault(); ; var mainDomain = topLevelDomains.Where(x => subDomain.DomainName.ToLowerInvariant().Contains(x.DomainName.ToLowerInvariant())).OrderByDescending(s => s.DomainName.Length).FirstOrDefault(); ;
if (mainDomain != null) if (mainDomain != null)
{ {
@ -182,5 +182,8 @@ namespace WebsitePanel.EnterpriseServer
// send mail message // send mail message
MailHelper.SendMessage(from, mailTo, bcc, subject, body, priority, isHtml); MailHelper.SendMessage(from, mailTo, bcc, subject, body, priority, isHtml);
} }
} }
} }

View file

@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net.Mail; using System.Net.Mail;
using System.Text; using System.Text;
using System.Text.RegularExpressions;
using WebsitePanel.Providers.DNS; using WebsitePanel.Providers.DNS;
using WebsitePanel.Providers.DomainLookup; using WebsitePanel.Providers.DomainLookup;
using WebsitePanel.Server; using WebsitePanel.Server;
@ -20,6 +21,10 @@ namespace WebsitePanel.EnterpriseServer
private static readonly string MailBodyTemplateParameter = "MAIL_BODY"; private static readonly string MailBodyTemplateParameter = "MAIL_BODY";
private static readonly string MailBodyDomainRecordTemplateParameter = "MAIL_DOMAIN_RECORD"; private static readonly string MailBodyDomainRecordTemplateParameter = "MAIL_DOMAIN_RECORD";
private static readonly string ServerNameParameter = "SERVER_NAME";
private const string MxRecordPattern = @"mail exchanger = (.+)";
private const string NsRecordPattern = @"nameserver = (.+)";
public override void DoWork() public override void DoWork()
{ {
@ -29,6 +34,7 @@ namespace WebsitePanel.EnterpriseServer
// get input parameters // get input parameters
string dnsServersString = (string)topTask.GetParamValue(DnsServersParameter); string dnsServersString = (string)topTask.GetParamValue(DnsServersParameter);
string serverName = (string)topTask.GetParamValue(ServerNameParameter);
// check input parameters // check input parameters
if (String.IsNullOrEmpty(dnsServersString)) if (String.IsNullOrEmpty(dnsServersString))
@ -43,6 +49,17 @@ namespace WebsitePanel.EnterpriseServer
return; return;
} }
// find server by name
ServerInfo server = ServerController.GetServerByName(serverName);
if (server == null)
{
TaskManager.WriteWarning(String.Format("Server with the name '{0}' was not found", serverName));
return;
}
WindowsServer winServer = new WindowsServer();
ServiceProviderProxy.ServerInit(winServer, server.ServerId);
var user = UserController.GetUser(topTask.UserId); var user = UserController.GetUser(topTask.UserId);
var dnsServers = dnsServersString.Split(';'); var dnsServers = dnsServersString.Split(';');
@ -74,8 +91,8 @@ namespace WebsitePanel.EnterpriseServer
//execute server //execute server
foreach (var dnsServer in dnsServers) foreach (var dnsServer in dnsServers)
{ {
var dnsMxRecords = OperatingSystemController.GetDomainRecords(domain.PackageId, domain.DomainName, dnsServer, DnsRecordType.MX); var dnsMxRecords = GetDomainDnsRecords(winServer, domain.DomainName, dnsServer, DnsRecordType.MX);
var dnsNsRecords = OperatingSystemController.GetDomainRecords(domain.PackageId, domain.DomainName, dnsServer, DnsRecordType.NS); var dnsNsRecords = GetDomainDnsRecords(winServer, domain.DomainName, dnsServer, DnsRecordType.NS);
FillRecordData(dnsMxRecords, domain, dnsServer); FillRecordData(dnsMxRecords, domain, dnsServer);
FillRecordData(dnsNsRecords, domain, dnsServer); FillRecordData(dnsNsRecords, domain, dnsServer);
@ -123,7 +140,7 @@ namespace WebsitePanel.EnterpriseServer
return changedDomains; return changedDomains;
} }
private IEnumerable<DnsRecordInfoChange> ApplyDomainRecordsChanges(List<DnsRecordInfo> dbRecords, List<DnsRecordInfo> dnsRecords, string dnsServer) private IEnumerable<DnsRecordInfoChange> ApplyDomainRecordsChanges(IEnumerable<DnsRecordInfo> dbRecords, List<DnsRecordInfo> dnsRecords, string dnsServer)
{ {
var dnsRecordChanges = new List<DnsRecordInfoChange>(); var dnsRecordChanges = new List<DnsRecordInfoChange>();
@ -240,6 +257,62 @@ namespace WebsitePanel.EnterpriseServer
MailHelper.SendMessage(from, mailTo, bcc, subject, body, priority, isHtml); MailHelper.SendMessage(from, mailTo, bcc, subject, body, priority, isHtml);
} }
public List<DnsRecordInfo> GetDomainDnsRecords(WindowsServer winServer, string domain, string dnsServer, DnsRecordType recordType)
{
//nslookup -type=mx google.com 195.46.39.39
var command = "nslookup";
var args = string.Format("-type={0} {1} {2}", recordType, domain, dnsServer);
// execute system command
var raw = winServer.ExecuteSystemCommand(command, args);
var records = ParseNsLookupResult(raw, dnsServer, recordType);
return records.ToList();
}
private IEnumerable<DnsRecordInfo> ParseNsLookupResult(string raw, string dnsServer, DnsRecordType recordType)
{
var records = new List<DnsRecordInfo>();
var recordTypePattern = string.Empty;
switch (recordType)
{
case DnsRecordType.NS:
{
recordTypePattern = NsRecordPattern;
break;
}
case DnsRecordType.MX:
{
recordTypePattern = MxRecordPattern;
break;
}
}
var regex = new Regex(recordTypePattern, RegexOptions.IgnoreCase);
foreach (Match match in regex.Matches(raw))
{
if (match.Groups.Count != 2)
{
continue;
}
var dnsRecord = new DnsRecordInfo
{
Value = match.Groups[1].Value != null ? match.Groups[1].Value.Replace("\r\n", "").Replace("\r", "").Replace("\n", "").Trim() : null,
RecordType = recordType,
DnsServer = dnsServer
};
records.Add(dnsRecord);
}
return records;
}
#endregion #endregion
} }
} }

View file

@ -91,8 +91,5 @@ namespace WebsitePanel.Providers.OS
// File Services // File Services
bool CheckFileServicesInstallation(); bool CheckFileServicesInstallation();
//DNS
DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType);
} }
} }

View file

@ -58,8 +58,6 @@ namespace WebsitePanel.Providers.OS
private const string MSEXCEL_DRIVER = "Microsoft Excel Driver (*.xls)"; private const string MSEXCEL_DRIVER = "Microsoft Excel Driver (*.xls)";
private const string TEXT_DRIVER = "Microsoft Text Driver (*.txt; *.csv)"; private const string TEXT_DRIVER = "Microsoft Text Driver (*.txt; *.csv)";
private const string MXRECORDPATTERN = @"mail exchanger = (.+)";
private const string NSRECORDPATTERN = @"nameserver = (.+)";
#endregion #endregion
#region Properties #region Properties
@ -751,63 +749,6 @@ namespace WebsitePanel.Providers.OS
} }
#endregion #endregion
public virtual DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType)
{
//nslookup -type=mx google.com 195.46.39.39
var command = "nslookup";
var args = string.Format("-type={0} {1} {2}", recordType, domain, dnsServer);
var raw = FileUtils.ExecuteSystemCommand(command, args);
var records = ParseNsLookupResult(raw, dnsServer, recordType);
return records.ToArray();
}
private IEnumerable<DnsRecordInfo> ParseNsLookupResult(string raw, string dnsServer, DnsRecordType recordType)
{
var records = new List<DnsRecordInfo>();
var recordTypePattern = string.Empty;
switch (recordType)
{
case DnsRecordType.NS:
{
recordTypePattern = NSRECORDPATTERN;
break;
}
case DnsRecordType.MX:
{
recordTypePattern = MXRECORDPATTERN;
break;
}
}
var regex = new Regex(recordTypePattern, RegexOptions.IgnoreCase);
foreach (Match match in regex.Matches(raw))
{
if (match.Groups.Count != 2)
{
continue;
}
var dnsRecord = new DnsRecordInfo
{
Value = match.Groups[1].Value != null ? match.Groups[1].Value.Replace("\r\n", "").Replace("\r", "").Replace("\n", "").Trim() : null,
RecordType = recordType,
DnsServer = dnsServer
};
records.Add(dnsRecord);
}
return records;
}
public override bool IsInstalled() public override bool IsInstalled()
{ {
return WebsitePanel.Server.Utils.OS.GetVersion() == WebsitePanel.Server.Utils.OS.WindowsVersion.WindowsServer2003; return WebsitePanel.Server.Utils.OS.GetVersion() == WebsitePanel.Server.Utils.OS.WindowsVersion.WindowsServer2003;

View file

@ -299,74 +299,6 @@ namespace WebsitePanel.Providers.OS
ExecuteShellCommand(runSpace, cmd, false); ExecuteShellCommand(runSpace, cmd, false);
} }
#region Domain LookUp
//public override DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType)
//{
// List<DnsRecordInfo> records = new List<DnsRecordInfo>();
// Runspace runSpace = null;
// try
// {
// runSpace = OpenRunspace();
// Command cmd = new Command("Resolve-DnsName");
// cmd.Parameters.Add("Name", domain);
// cmd.Parameters.Add("Server", dnsServer);
// cmd.Parameters.Add("Type", recordType.ToString());
// var dnsRecordsPs = ExecuteShellCommand(runSpace, cmd, false);
// if (dnsRecordsPs != null)
// {
// foreach (var dnsRecordPs in dnsRecordsPs)
// {
// DnsRecordInfo newRecord = null;
// switch (recordType)
// {
// case DnsRecordType.MX: { newRecord = CreateDnsRecordFromPsObject(dnsRecordPs, "NameExchange"); break; }
// case DnsRecordType.NS: { newRecord = CreateDnsRecordFromPsObject(dnsRecordPs, "NameHost"); break; }
// default: continue;
// }
// if (newRecord != null)
// {
// newRecord.DnsServer = dnsServer;
// newRecord.RecordType = recordType;
// records.Add(newRecord);
// }
// }
// }
// }
// finally
// {
// CloseRunspace(runSpace);
// }
// return records.ToArray();
//}
private DnsRecordInfo CreateDnsRecordFromPsObject(PSObject psObject, string valueName)
{
if (!psObject.Members.Any(x => x.Name == valueName))
{
return null;
}
var dnsRecord = new DnsRecordInfo
{
Value = Convert.ToString(GetPSObjectProperty(psObject, valueName)),
};
return dnsRecord;
}
#endregion
#region PowerShell integration #region PowerShell integration
private static InitialSessionState session = null; private static InitialSessionState session = null;

View file

@ -18,8 +18,6 @@ namespace WebsitePanel.Providers.OS {
using System.Web.Services.Protocols; using System.Web.Services.Protocols;
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using WebsitePanel.Providers.DNS;
using WebsitePanel.Providers.DomainLookup;
/// <remarks/> /// <remarks/>
@ -114,8 +112,6 @@ namespace WebsitePanel.Providers.OS {
private System.Threading.SendOrPostCallback DeleteDSNOperationCompleted; private System.Threading.SendOrPostCallback DeleteDSNOperationCompleted;
private System.Threading.SendOrPostCallback GetDomainDnsRecordsOperationCompleted;
/// <remarks/> /// <remarks/>
public OperatingSystem() { public OperatingSystem() {
this.Url = "http://localhost:9003/OperatingSystem.asmx"; this.Url = "http://localhost:9003/OperatingSystem.asmx";
@ -244,9 +240,6 @@ namespace WebsitePanel.Providers.OS {
/// <remarks/> /// <remarks/>
public event DeleteDSNCompletedEventHandler DeleteDSNCompleted; public event DeleteDSNCompletedEventHandler DeleteDSNCompleted;
/// <remarks/>
public event GetDomainDnsRecordsCompletedEventHandler GetDomainDnsRecordsCompleted;
/// <remarks/> /// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreatePackageFolder", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreatePackageFolder", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
@ -2017,54 +2010,6 @@ namespace WebsitePanel.Providers.OS {
} }
} }
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetDomainDnsRecords", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType) {
object[] results = this.Invoke("GetDomainDnsRecords", new object[] {
domain,
dnsServer,
recordType});
return ((DnsRecordInfo[])(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginGetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("GetDomainDnsRecords", new object[] {
domain,
dnsServer,
recordType}, callback, asyncState);
}
/// <remarks/>
public DnsRecordInfo[] EndGetDomainDnsRecords(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((DnsRecordInfo[])(results[0]));
}
/// <remarks/>
public void GetDomainDnsRecordsAsync(string domain, string dnsServer, DnsRecordType recordType) {
this.GetDomainDnsRecordsAsync(domain, dnsServer, recordType, null);
}
/// <remarks/>
public void GetDomainDnsRecordsAsync(string domain, string dnsServer, DnsRecordType recordType, object userState) {
if ((this.GetDomainDnsRecordsOperationCompleted == null)) {
this.GetDomainDnsRecordsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDomainDnsRecordsOperationCompleted);
}
this.InvokeAsync("GetDomainDnsRecords", new object[] {
domain,
dnsServer,
recordType}, this.GetDomainDnsRecordsOperationCompleted, userState);
}
private void OnGetDomainDnsRecordsOperationCompleted(object arg) {
if ((this.GetDomainDnsRecordsCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.GetDomainDnsRecordsCompleted(this, new GetDomainDnsRecordsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/> /// <remarks/>
public new void CancelAsync(object userState) { public new void CancelAsync(object userState) {
base.CancelAsync(userState); base.CancelAsync(userState);
@ -2674,30 +2619,4 @@ namespace WebsitePanel.Providers.OS {
/// <remarks/> /// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void DeleteDSNCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); public delegate void DeleteDSNCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void GetDomainDnsRecordsCompletedEventHandler(object sender, GetDomainDnsRecordsCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetDomainDnsRecordsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal GetDomainDnsRecordsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public DnsRecordInfo[] Result {
get {
this.RaiseExceptionIfNecessary();
return ((DnsRecordInfo[])(this.results[0]));
}
}
}
} }

View file

@ -741,25 +741,5 @@ namespace WebsitePanel.Server
} }
#endregion #endregion
#region Dns
[WebMethod, SoapHeader("settings")]
public DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType)
{
try
{
Log.WriteStart("'{0}' GetDomainDnsRecords", ProviderSettings.ProviderName);
var result = OsProvider.GetDomainDnsRecords(domain, dnsServer, recordType);
Log.WriteEnd("'{0}' GetDomainDnsRecords", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetDomainDnsRecords", ProviderSettings.ProviderName), ex);
throw;
}
}
#endregion
} }
} }

View file

@ -42,7 +42,7 @@
<ItemTemplate> <ItemTemplate>
<%# GetDomainExpirationDate(Eval("ExpirationDate"), Eval("LastUpdateDate"))%> <%# GetDomainExpirationDate(Eval("ExpirationDate"), Eval("LastUpdateDate"))%>
<div style="display:inline-block" runat="server" Visible='<%# !(bool)Eval("IsSubDomain") && !(bool)Eval("IsInstantAlias") && !(bool)Eval("IsDomainPointer") %>'> <div style="display:inline-block" runat="server" Visible='<%# ShowDomainDnsInfo(Eval("ExpirationDate"), Eval("LastUpdateDate"), !(bool)Eval("IsSubDomain") && !(bool)Eval("IsInstantAlias") && !(bool)Eval("IsDomainPointer")) %>'>
<img style="border-width: 0px;" src="App_Themes/Default/Images/information_icon_small.gif" title="<%# GetDomainDnsRecords((int)Eval("DomainId")) %>"> <img style="border-width: 0px;" src="App_Themes/Default/Images/information_icon_small.gif" title="<%# GetDomainDnsRecords((int)Eval("DomainId")) %>">
</div> </div>
</ItemTemplate> </ItemTemplate>

View file

@ -124,6 +124,33 @@ namespace WebsitePanel.Portal
} }
} }
public bool ShowDomainDnsInfo(object expirationDateObject, object LastUpdateDateObject, bool isTopLevelDomain)
{
var expirationDate = expirationDateObject as DateTime?;
var lastUpdateDate = LastUpdateDateObject as DateTime?;
if (!isTopLevelDomain)
{
return false;
}
else if (expirationDate != null && expirationDate < DateTime.Now)
{
return false;
}
else if(expirationDate != null)
{
return true;
}
else if (lastUpdateDate == null)
{
return false;
}
else
{
return false;
}
}
public string GetDomainDnsRecords(int domainId) public string GetDomainDnsRecords(int domainId)
{ {
var records = ES.Services.Servers.GetDomainDnsRecords(domainId); var records = ES.Services.Servers.GetDomainDnsRecords(domainId);

View file

@ -78,5 +78,14 @@ namespace WebsitePanel.Portal.ScheduleTaskControls.App_LocalResources {
return ResourceManager.GetString("lblDnsServersHint", resourceCulture); return ResourceManager.GetString("lblDnsServersHint", resourceCulture);
} }
} }
/// <summary>
/// Looks up a localized string similar to Server Name:.
/// </summary>
internal static string lblServerName {
get {
return ResourceManager.GetString("lblServerName", resourceCulture);
}
}
} }
} }

View file

@ -123,4 +123,7 @@
<data name="lblDnsServersHint" xml:space="preserve"> <data name="lblDnsServersHint" xml:space="preserve">
<value>Please enter dns servers to check.</value> <value>Please enter dns servers to check.</value>
</data> </data>
<data name="lblServerName" xml:space="preserve">
<value>Server Name:</value>
</data>
</root> </root>

View file

@ -1,6 +1,13 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DomainLookupView.ascx.cs" Inherits="WebsitePanel.Portal.ScheduleTaskControls.DomainLookupView" %> <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DomainLookupView.ascx.cs" Inherits="WebsitePanel.Portal.ScheduleTaskControls.DomainLookupView" %>
<table cellspacing="0" cellpadding="4" width="100%"> <table cellspacing="0" cellpadding="4" width="100%">
<tr>
<td class="SubHead" nowrap valign="top">
<asp:Label ID="lblServerName" runat="server" meta:resourcekey="lblServerName">Server Name: </asp:Label>
</td>
<td class="Normal" width="100%">
<asp:TextBox ID="txtServerName" runat="server" Width="95%" CssClass="NormalTextBox" MaxLength="1000"></asp:TextBox>
</tr>
<tr> <tr>
<td class="SubHead" nowrap> <td class="SubHead" nowrap>
<asp:Label ID="lblDnsServers" runat="server" meta:resourcekey="lblDnsServers" Text="DNS Servers:"></asp:Label> <asp:Label ID="lblDnsServers" runat="server" meta:resourcekey="lblDnsServers" Text="DNS Servers:"></asp:Label>

View file

@ -13,6 +13,7 @@ namespace WebsitePanel.Portal.ScheduleTaskControls
{ {
private static readonly string DnsServersParameter = "DNS_SERVERS"; private static readonly string DnsServersParameter = "DNS_SERVERS";
private static readonly string MailToParameter = "MAIL_TO"; private static readonly string MailToParameter = "MAIL_TO";
private static readonly string ServerNameParameter = "SERVER_NAME";
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
@ -29,6 +30,7 @@ namespace WebsitePanel.Portal.ScheduleTaskControls
this.SetParameter(this.txtDnsServers, DnsServersParameter); this.SetParameter(this.txtDnsServers, DnsServersParameter);
this.SetParameter(this.txtMailTo, MailToParameter); this.SetParameter(this.txtMailTo, MailToParameter);
this.SetParameter(this.txtServerName, ServerNameParameter);
} }
/// <summary> /// <summary>
@ -39,8 +41,9 @@ namespace WebsitePanel.Portal.ScheduleTaskControls
{ {
ScheduleTaskParameterInfo dnsServers = this.GetParameter(this.txtDnsServers, DnsServersParameter); ScheduleTaskParameterInfo dnsServers = this.GetParameter(this.txtDnsServers, DnsServersParameter);
ScheduleTaskParameterInfo mailTo = this.GetParameter(this.txtMailTo, MailToParameter); ScheduleTaskParameterInfo mailTo = this.GetParameter(this.txtMailTo, MailToParameter);
ScheduleTaskParameterInfo serverName = this.GetParameter(this.txtServerName, ServerNameParameter);
return new ScheduleTaskParameterInfo[2] { dnsServers, mailTo }; return new ScheduleTaskParameterInfo[3] { dnsServers, mailTo, serverName };
} }
} }
} }

View file

@ -12,6 +12,24 @@ namespace WebsitePanel.Portal.ScheduleTaskControls {
public partial class DomainLookupView { public partial class DomainLookupView {
/// <summary>
/// lblServerName control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblServerName;
/// <summary>
/// txtServerName control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox txtServerName;
/// <summary> /// <summary>
/// lblDnsServers control. /// lblDnsServers control.
/// </summary> /// </summary>