This commit is contained in:
Virtuworks 2014-12-18 06:41:29 -05:00
commit f354619bb6
6 changed files with 242 additions and 213 deletions

View file

@ -6249,7 +6249,7 @@ Please, find below details of your domain expiration information.
<tr>
<td>#Domain.DomainName#</td>
<td>#Domain.Customer#</td>
<td>Expired</td>
<td>#Domain.ExpirationDate#</td>
</tr>
</ad:foreach>
</tbody>
@ -6313,7 +6313,7 @@ Please, find below details of your domain expiration information.
<ad:foreach collection="#Domains#" var="Domain" index="i">
Domain: #Domain.DomainName#
Customer: #Domain.Customer#
Expiration Date: Expired
Expiration Date: #Domain.ExpirationDate#
</ad:foreach>
@ -6385,7 +6385,7 @@ Please, find below details of MX and NS changes.
</p>
<ad:foreach collection="#Domains#" var="Domain" index="i">
<h2>#Domain.DomainName#</h2>
<h2>#Domain.DomainName# - #DomainUsers[Domain.PackageId].FirstName# #DomainUsers[Domain.PackageId].LastName#</h2>
<table>
<thead>
@ -6440,13 +6440,12 @@ INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [Property
Hello #user.FirstName#,
</ad:if>
Please, find below MX and NS Changes Information.
Please, find below details of MX and NS changes.
<ad:foreach collection="#Domains#" var="Domain" index="i">
#Domain.DomainName#
#Domain.DomainName# - #DomainUsers[Domain.PackageId].FirstName# #DomainUsers[Domain.PackageId].LastName#
<ad:foreach collection="#Domain.DnsChanges#" var="DnsChange" index="j">
DNS: #DnsChange.DnsServer#
@ -6501,7 +6500,7 @@ Hello #user.FirstName#,
</ad:if>
<p>
No MX and NS changes have been founded.
No MX and NS changes have been found.
</p>
<p>

View file

@ -32,7 +32,7 @@ namespace WebsitePanel.EnterpriseServer
var checkedDomains = new List<int>();
var expiredDomains = new List<DomainInfo>();
var nonExistenDomains = new List<DomainInfo>();
var subDomains = new List<DomainInfo>();
var allDomains = new List<DomainInfo>();
var allTopLevelDomains = new List<DomainInfo>();
// get input parameters
@ -58,7 +58,7 @@ namespace WebsitePanel.EnterpriseServer
{
var domains = ServerController.GetDomains(package.PackageId);
subDomains.AddRange(domains.Where(x => x.IsSubDomain));
allDomains.AddRange(domains);
domains = domains.Where(x => !x.IsSubDomain && !x.IsDomainPointer).ToList(); //Selecting top-level domains
@ -96,17 +96,24 @@ namespace WebsitePanel.EnterpriseServer
}
}
subDomains = subDomains.GroupBy(p => p.DomainId).Select(g => g.First()).ToList();
var subDomains = allDomains.Where(x => x.ExpirationDate == null || CheckDomainExpiration(x.ExpirationDate, daysBeforeNotify)).GroupBy(p => p.DomainId).Select(g => g.First()).ToList();
allTopLevelDomains = allTopLevelDomains.GroupBy(p => p.DomainId).Select(g => g.First()).ToList();
foreach (var subDomain in subDomains)
{
var mainDomain = allTopLevelDomains.Where(x => subDomain.DomainName.ToLowerInvariant().Contains(x.DomainName.ToLowerInvariant())).OrderByDescending(s => s.DomainName.Length).FirstOrDefault(); ;
var mainDomain = allTopLevelDomains.Where(x => subDomain.DomainId != x.DomainId && subDomain.DomainName.ToLowerInvariant().Contains(x.DomainName.ToLowerInvariant())).OrderByDescending(s => s.DomainName.Length).FirstOrDefault(); ;
if (mainDomain != null)
{
ServerController.UpdateDomainRegistrationData(subDomain, mainDomain.CreationDate, mainDomain.ExpirationDate);
var nonExistenDomain = nonExistenDomains.FirstOrDefault(x => subDomain.DomainId == x.DomainId);
if (nonExistenDomain != null)
{
nonExistenDomains.Remove(nonExistenDomain);
}
Thread.Sleep(100);
}
}

View file

@ -32,6 +32,7 @@ namespace WebsitePanel.EnterpriseServer
BackgroundTask topTask = TaskManager.TopTask;
List<DomainDnsChanges> domainsChanges = new List<DomainDnsChanges>();
var domainUsers = new Dictionary<int, UserInfo>();
// get input parameters
string dnsServersString = (string)topTask.GetParamValue(DnsServersParameter);
@ -83,8 +84,16 @@ namespace WebsitePanel.EnterpriseServer
continue;
}
if (!domainUsers.ContainsKey(domain.PackageId))
{
var domainUser = UserController.GetUser(packages.First(x=>x.PackageId == domain.PackageId).UserId);
domainUsers.Add(domain.PackageId, domainUser);
}
DomainDnsChanges domainChanges = new DomainDnsChanges();
domainChanges.DomainName = domain.DomainName;
domainChanges.PackageId = domain.PackageId;
var dbDnsRecords = ObjectUtils.CreateListFromDataReader<DnsRecordInfo>(DataProvider.GetDomainAllDnsRecords(domain.DomainId));
@ -109,7 +118,7 @@ namespace WebsitePanel.EnterpriseServer
var changedDomains = FindDomainsWithChangedRecords(domainsChanges);
SendMailMessage(user, changedDomains);
SendMailMessage(user, changedDomains, domainUsers);
}
@ -252,7 +261,7 @@ namespace WebsitePanel.EnterpriseServer
Thread.Sleep(100);
}
private void SendMailMessage(UserInfo user, IEnumerable<DomainDnsChanges> domainsChanges)
private void SendMailMessage(UserInfo user, IEnumerable<DomainDnsChanges> domainsChanges, Dictionary<int, UserInfo> domainUsers)
{
BackgroundTask topTask = TaskManager.TopTask;
@ -286,6 +295,7 @@ namespace WebsitePanel.EnterpriseServer
Hashtable items = new Hashtable();
items["user"] = user;
items["DomainUsers"] = domainUsers;
items["Domains"] = domainsChanges;
body = PackageController.EvaluateTemplate(body, items);

View file

@ -8,6 +8,7 @@ namespace WebsitePanel.Providers.DomainLookup
public class DomainDnsChanges
{
public string DomainName { get; set; }
public int PackageId { get; set; }
public List<DnsRecordInfoChange> DnsChanges { get; set; }

View file

@ -213,4 +213,7 @@
<data name="DomainExpirationDate.NotExist" xml:space="preserve">
<value>Non-Existent</value>
</data>
<data name="DomainLookup.TooltipHeader" xml:space="preserve">
<value>Current Real DNS Values</value>
</data>
</root>

View file

@ -39,6 +39,7 @@ using System.Web.UI.HtmlControls;
using System.Linq;
using WebsitePanel.EnterpriseServer;
using System.Collections.Generic;
namespace WebsitePanel.Portal
{
@ -160,7 +161,15 @@ namespace WebsitePanel.Portal
return "No Dns Records";
}
return string.Join("\r\n", records.Select(x=>string.Format("{0}: {1}", x.RecordType, x.Value)));
var header = GetLocalizedString("DomainLookup.TooltipHeader");
var tooltipLines = new List<string>();
tooltipLines.Add(header);
tooltipLines.Add(" ");
tooltipLines.AddRange( records.Select(x=>string.Format("{0}: {1}", x.RecordType, x.Value)));
return string.Join("\r\n", tooltipLines);
}
protected void odsDomainsPaged_Selected(object sender, ObjectDataSourceStatusEventArgs e)