DomainLookup Task fixes
This commit is contained in:
parent
f3ceabf4cc
commit
3fc43037bf
16 changed files with 155 additions and 255 deletions
|
@ -6178,6 +6178,12 @@ INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [D
|
|||
END
|
||||
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
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
}
|
||||
|
|
|
@ -92,7 +92,7 @@ namespace WebsitePanel.EnterpriseServer
|
|||
|
||||
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)
|
||||
{
|
||||
|
@ -182,5 +182,8 @@ namespace WebsitePanel.EnterpriseServer
|
|||
// send mail message
|
||||
MailHelper.SendMessage(from, mailTo, bcc, subject, body, priority, isHtml);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ using System.Collections.Generic;
|
|||
using System.Linq;
|
||||
using System.Net.Mail;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using WebsitePanel.Providers.DNS;
|
||||
using WebsitePanel.Providers.DomainLookup;
|
||||
using WebsitePanel.Server;
|
||||
|
@ -20,6 +21,10 @@ namespace WebsitePanel.EnterpriseServer
|
|||
|
||||
private static readonly string MailBodyTemplateParameter = "MAIL_BODY";
|
||||
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()
|
||||
{
|
||||
|
@ -29,6 +34,7 @@ namespace WebsitePanel.EnterpriseServer
|
|||
|
||||
// get input parameters
|
||||
string dnsServersString = (string)topTask.GetParamValue(DnsServersParameter);
|
||||
string serverName = (string)topTask.GetParamValue(ServerNameParameter);
|
||||
|
||||
// check input parameters
|
||||
if (String.IsNullOrEmpty(dnsServersString))
|
||||
|
@ -43,6 +49,17 @@ namespace WebsitePanel.EnterpriseServer
|
|||
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 dnsServers = dnsServersString.Split(';');
|
||||
|
@ -74,8 +91,8 @@ namespace WebsitePanel.EnterpriseServer
|
|||
//execute server
|
||||
foreach (var dnsServer in dnsServers)
|
||||
{
|
||||
var dnsMxRecords = OperatingSystemController.GetDomainRecords(domain.PackageId, domain.DomainName, dnsServer, DnsRecordType.MX);
|
||||
var dnsNsRecords = OperatingSystemController.GetDomainRecords(domain.PackageId, domain.DomainName, dnsServer, DnsRecordType.NS);
|
||||
var dnsMxRecords = GetDomainDnsRecords(winServer, domain.DomainName, dnsServer, DnsRecordType.MX);
|
||||
var dnsNsRecords = GetDomainDnsRecords(winServer, domain.DomainName, dnsServer, DnsRecordType.NS);
|
||||
|
||||
FillRecordData(dnsMxRecords, domain, dnsServer);
|
||||
FillRecordData(dnsNsRecords, domain, dnsServer);
|
||||
|
@ -123,7 +140,7 @@ namespace WebsitePanel.EnterpriseServer
|
|||
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>();
|
||||
|
||||
|
@ -240,6 +257,62 @@ namespace WebsitePanel.EnterpriseServer
|
|||
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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -91,8 +91,5 @@ namespace WebsitePanel.Providers.OS
|
|||
|
||||
// File Services
|
||||
bool CheckFileServicesInstallation();
|
||||
|
||||
//DNS
|
||||
DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,8 +58,6 @@ namespace WebsitePanel.Providers.OS
|
|||
private const string MSEXCEL_DRIVER = "Microsoft Excel Driver (*.xls)";
|
||||
private const string TEXT_DRIVER = "Microsoft Text Driver (*.txt; *.csv)";
|
||||
|
||||
private const string MXRECORDPATTERN = @"mail exchanger = (.+)";
|
||||
private const string NSRECORDPATTERN = @"nameserver = (.+)";
|
||||
#endregion
|
||||
|
||||
#region Properties
|
||||
|
@ -751,63 +749,6 @@ namespace WebsitePanel.Providers.OS
|
|||
}
|
||||
#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()
|
||||
{
|
||||
return WebsitePanel.Server.Utils.OS.GetVersion() == WebsitePanel.Server.Utils.OS.WindowsVersion.WindowsServer2003;
|
||||
|
|
|
@ -299,74 +299,6 @@ namespace WebsitePanel.Providers.OS
|
|||
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
|
||||
private static InitialSessionState session = null;
|
||||
|
||||
|
|
|
@ -18,8 +18,6 @@ namespace WebsitePanel.Providers.OS {
|
|||
using System.Web.Services.Protocols;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using WebsitePanel.Providers.DNS;
|
||||
using WebsitePanel.Providers.DomainLookup;
|
||||
|
||||
|
||||
/// <remarks/>
|
||||
|
@ -114,8 +112,6 @@ namespace WebsitePanel.Providers.OS {
|
|||
|
||||
private System.Threading.SendOrPostCallback DeleteDSNOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback GetDomainDnsRecordsOperationCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public OperatingSystem() {
|
||||
this.Url = "http://localhost:9003/OperatingSystem.asmx";
|
||||
|
@ -244,9 +240,6 @@ namespace WebsitePanel.Providers.OS {
|
|||
/// <remarks/>
|
||||
public event DeleteDSNCompletedEventHandler DeleteDSNCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event GetDomainDnsRecordsCompletedEventHandler GetDomainDnsRecordsCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
[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)]
|
||||
|
@ -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/>
|
||||
public new void CancelAsync(object userState) {
|
||||
base.CancelAsync(userState);
|
||||
|
@ -2674,30 +2619,4 @@ namespace WebsitePanel.Providers.OS {
|
|||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
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]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -741,25 +741,5 @@ namespace WebsitePanel.Server
|
|||
}
|
||||
#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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
<ItemTemplate>
|
||||
<%# 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")) %>">
|
||||
</div>
|
||||
</ItemTemplate>
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
var records = ES.Services.Servers.GetDomainDnsRecords(domainId);
|
||||
|
|
|
@ -78,5 +78,14 @@ namespace WebsitePanel.Portal.ScheduleTaskControls.App_LocalResources {
|
|||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -123,4 +123,7 @@
|
|||
<data name="lblDnsServersHint" xml:space="preserve">
|
||||
<value>Please enter dns servers to check.</value>
|
||||
</data>
|
||||
<data name="lblServerName" xml:space="preserve">
|
||||
<value>Server Name:</value>
|
||||
</data>
|
||||
</root>
|
|
@ -1,6 +1,13 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DomainLookupView.ascx.cs" Inherits="WebsitePanel.Portal.ScheduleTaskControls.DomainLookupView" %>
|
||||
|
||||
<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>
|
||||
<td class="SubHead" nowrap>
|
||||
<asp:Label ID="lblDnsServers" runat="server" meta:resourcekey="lblDnsServers" Text="DNS Servers:"></asp:Label>
|
||||
|
|
|
@ -13,6 +13,7 @@ namespace WebsitePanel.Portal.ScheduleTaskControls
|
|||
{
|
||||
private static readonly string DnsServersParameter = "DNS_SERVERS";
|
||||
private static readonly string MailToParameter = "MAIL_TO";
|
||||
private static readonly string ServerNameParameter = "SERVER_NAME";
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
@ -29,6 +30,7 @@ namespace WebsitePanel.Portal.ScheduleTaskControls
|
|||
|
||||
this.SetParameter(this.txtDnsServers, DnsServersParameter);
|
||||
this.SetParameter(this.txtMailTo, MailToParameter);
|
||||
this.SetParameter(this.txtServerName, ServerNameParameter);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -39,8 +41,9 @@ namespace WebsitePanel.Portal.ScheduleTaskControls
|
|||
{
|
||||
ScheduleTaskParameterInfo dnsServers = this.GetParameter(this.txtDnsServers, DnsServersParameter);
|
||||
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 };
|
||||
}
|
||||
}
|
||||
}
|
|
@ -12,6 +12,24 @@ namespace WebsitePanel.Portal.ScheduleTaskControls {
|
|||
|
||||
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>
|
||||
/// lblDnsServers control.
|
||||
/// </summary>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue