Domain lookup mail template changed

This commit is contained in:
vfedosevich 2014-12-17 08:13:29 -08:00
parent eee7c9e925
commit df814794a2
4 changed files with 49 additions and 9 deletions

View file

@ -6393,7 +6393,8 @@ Please, find below details of MX and NS changes.
<th>DNS</th> <th>DNS</th>
<th>Type</th> <th>Type</th>
<th>Status</th> <th>Status</th>
<th>Value</th> <th>Old Value</th>
<th>New Value</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -6402,7 +6403,8 @@ Please, find below details of MX and NS changes.
<td>#DnsChange.DnsServer#</td> <td>#DnsChange.DnsServer#</td>
<td>#DnsChange.Type#</td> <td>#DnsChange.Type#</td>
<td>#DnsChange.Status#</td> <td>#DnsChange.Status#</td>
<td>#DnsChange.Record.Value#</td> <td>#DnsChange.OldRecord.Value#</td>
<td>#DnsChange.NewRecord.Value#</td>
</tr> </tr>
</ad:foreach> </ad:foreach>
</tbody> </tbody>
@ -6450,7 +6452,8 @@ Please, find below MX and NS Changes Information.
DNS: #DnsChange.DnsServer# DNS: #DnsChange.DnsServer#
Type: #DnsChange.Type# Type: #DnsChange.Type#
Status: #DnsChange.Status# Status: #DnsChange.Status#
Value: #DnsChange.Record.Value# Old Value: #DnsChange.OldRecord.Value#
New Value: #DnsChange.NewRecord.Value#
</ad:foreach> </ad:foreach>
</ad:foreach> </ad:foreach>

View file

@ -99,6 +99,8 @@ namespace WebsitePanel.EnterpriseServer
domainChanges.DnsChanges.AddRange(ApplyDomainRecordsChanges(dbDnsRecords.Where(x => x.RecordType == DnsRecordType.MX), dnsMxRecords, dnsServer)); domainChanges.DnsChanges.AddRange(ApplyDomainRecordsChanges(dbDnsRecords.Where(x => x.RecordType == DnsRecordType.MX), dnsMxRecords, dnsServer));
domainChanges.DnsChanges.AddRange(ApplyDomainRecordsChanges(dbDnsRecords.Where(x => x.RecordType == DnsRecordType.NS), dnsNsRecords, dnsServer)); domainChanges.DnsChanges.AddRange(ApplyDomainRecordsChanges(dbDnsRecords.Where(x => x.RecordType == DnsRecordType.NS), dnsNsRecords, dnsServer));
domainChanges.DnsChanges = CombineDnsRecordChanges(domainChanges.DnsChanges, dnsServer).ToList();
} }
domainsChanges.Add(domainChanges); domainsChanges.Add(domainChanges);
@ -150,13 +152,13 @@ namespace WebsitePanel.EnterpriseServer
if (dnsRecord != null) if (dnsRecord != null)
{ {
dnsRecordChanges.Add(new DnsRecordInfoChange { Record = record, Type = record.RecordType, Status = DomainDnsRecordStatuses.NotChanged, DnsServer = dnsServer }); dnsRecordChanges.Add(new DnsRecordInfoChange { OldRecord = record, NewRecord = dnsRecord, Type = record.RecordType, Status = DomainDnsRecordStatuses.NotChanged, DnsServer = dnsServer });
dnsRecords.Remove(dnsRecord); dnsRecords.Remove(dnsRecord);
} }
else else
{ {
dnsRecordChanges.Add(new DnsRecordInfoChange { Record = record, Type = record.RecordType, Status = DomainDnsRecordStatuses.Removed, DnsServer = dnsServer }); dnsRecordChanges.Add(new DnsRecordInfoChange { OldRecord = record, NewRecord = new DnsRecordInfo { Value = string.Empty}, Type = record.RecordType, Status = DomainDnsRecordStatuses.Removed, DnsServer = dnsServer });
RemoveRecord(record); RemoveRecord(record);
} }
@ -164,7 +166,7 @@ namespace WebsitePanel.EnterpriseServer
foreach (var record in dnsRecords) foreach (var record in dnsRecords)
{ {
dnsRecordChanges.Add(new DnsRecordInfoChange { Record = record, Type = record.RecordType, Status = DomainDnsRecordStatuses.Added, DnsServer= dnsServer}); dnsRecordChanges.Add(new DnsRecordInfoChange { OldRecord = new DnsRecordInfo { Value = string.Empty }, NewRecord = record, Type = record.RecordType, Status = DomainDnsRecordStatuses.Added, DnsServer = dnsServer });
AddRecord(record); AddRecord(record);
} }
@ -172,6 +174,39 @@ namespace WebsitePanel.EnterpriseServer
return dnsRecordChanges; return dnsRecordChanges;
} }
private IEnumerable<DnsRecordInfoChange> CombineDnsRecordChanges(IEnumerable<DnsRecordInfoChange> records, string dnsServer)
{
var resultRecords = records.Where(x => x.DnsServer == dnsServer).ToList();
var recordsToRemove = new List<DnsRecordInfoChange>();
var removedRecords = records.Where(x => x.Status == DomainDnsRecordStatuses.Removed);
var addedRecords = records.Where(x => x.Status == DomainDnsRecordStatuses.Added);
foreach (DnsRecordType type in (DnsRecordType[])Enum.GetValues(typeof(DnsRecordType)))
{
foreach (var removedRecord in removedRecords.Where(x => x.Type == type))
{
var addedRecord = addedRecords.FirstOrDefault(x => x.Type == type && !recordsToRemove.Contains(x));
if (addedRecord != null)
{
recordsToRemove.Add(addedRecord);
removedRecord.NewRecord = addedRecord.NewRecord;
removedRecord.Status = DomainDnsRecordStatuses.Updated;
}
}
}
foreach (var record in recordsToRemove)
{
resultRecords.Remove(record);
}
return resultRecords;
}
private void FillRecordData(IEnumerable<DnsRecordInfo> records, DomainInfo domain, string dnsServer) private void FillRecordData(IEnumerable<DnsRecordInfo> records, DomainInfo domain, string dnsServer)
{ {
foreach (var record in records) foreach (var record in records)

View file

@ -9,7 +9,8 @@ namespace WebsitePanel.Providers.DomainLookup
public class DnsRecordInfoChange public class DnsRecordInfoChange
{ {
public string DnsServer { get; set; } public string DnsServer { get; set; }
public DnsRecordInfo Record { get; set; } public DnsRecordInfo OldRecord { get; set; }
public DnsRecordInfo NewRecord { get; set; }
public DomainDnsRecordStatuses Status { get; set; } public DomainDnsRecordStatuses Status { get; set; }
public DnsRecordType Type { get; set; } public DnsRecordType Type { get; set; }
} }

View file

@ -9,6 +9,7 @@ namespace WebsitePanel.Providers.DomainLookup
{ {
NotChanged, NotChanged,
Removed, Removed,
Added Added,
Updated
} }
} }