MX + Domain expiration tasks fixes

This commit is contained in:
vfedosevich 2014-12-11 05:58:59 -08:00
parent 9ddd934ff5
commit f3ceabf4cc
13 changed files with 617 additions and 329 deletions

View file

@ -6,6 +6,7 @@ using System.Net.Mail;
using System.Text;
using WebsitePanel.Providers.DNS;
using WebsitePanel.Providers.DomainLookup;
using WebsitePanel.Server;
namespace WebsitePanel.EnterpriseServer
{
@ -48,13 +49,14 @@ namespace WebsitePanel.EnterpriseServer
var packages = ObjectUtils.CreateListFromDataReader<PackageInfo>(DataProvider.GetAllPackages());
foreach (var package in packages)
{
var domains = ServerController.GetDomains(package.PackageId);
domains = domains.Where(x => !x.IsSubDomain && !x.IsDomainPointer).ToList(); //Selecting top-level domains
domains = domains.Where(x => x.ZoneItemId > 0).ToList(); //Selecting only dns enabled domains
//domains = domains.Where(x => x.ZoneItemId > 0).ToList(); //Selecting only dns enabled domains
foreach (var domain in domains)
{
@ -86,12 +88,11 @@ namespace WebsitePanel.EnterpriseServer
}
}
TaskManager.Write(string.Format("Domains checked: {0}", domainsChanges.Count));
var changedDomains = FindDomainsWithChangedRecords(domainsChanges);
if (changedDomains.Any())
{
SendMailMessage(user,changedDomains);
}
SendMailMessage(user, changedDomains);
}
@ -208,8 +209,6 @@ namespace WebsitePanel.EnterpriseServer
var bcc = settings["CC"];
string subject = settings["Subject"];
string body = user.HtmlMail ? settings["HtmlBody"] : settings["TextBody"];
bool isHtml = user.HtmlMail;
MailPriority priority = MailPriority.Normal;
if (!String.IsNullOrEmpty(settings["Priority"]))
@ -218,6 +217,18 @@ namespace WebsitePanel.EnterpriseServer
// input parameters
string mailTo = (string)topTask.GetParamValue("MAIL_TO");
string body = string.Empty;
bool isHtml = user.HtmlMail;
if (domainsChanges.Any())
{
body = user.HtmlMail ? settings["HtmlBody"] : settings["TextBody"];
}
else
{
body = user.HtmlMail ? settings["NoChangesHtmlBody"] : settings["NoChangesTextBody"];
}
Hashtable items = new Hashtable();
items["user"] = user;

View file

@ -41,6 +41,7 @@ using WebsitePanel.Providers.Web;
using WebsitePanel.Providers.HostedSolution;
using Whois.NET;
using System.Text.RegularExpressions;
using WebsitePanel.Providers.DomainLookup;
namespace WebsitePanel.EnterpriseServer
{
@ -1633,6 +1634,21 @@ namespace WebsitePanel.EnterpriseServer
#endregion
#region Domains
public static List<DnsRecordInfo> GetDomainDnsRecords(int domainId)
{
var result = new List<DnsRecordInfo>();
var mxRecords = ObjectUtils.CreateListFromDataReader<DnsRecordInfo>(DataProvider.GetDomainDnsRecords(domainId, DnsRecordType.MX));
var nsRecords = ObjectUtils.CreateListFromDataReader<DnsRecordInfo>(DataProvider.GetDomainDnsRecords(domainId, DnsRecordType.NS));
result.AddRange(mxRecords);
result.AddRange(nsRecords);
return result;
}
public static int CheckDomain(string domainName)
{
int checkDomainResult = DataProvider.CheckDomain(-10, domainName, false);
@ -2693,10 +2709,18 @@ namespace WebsitePanel.EnterpriseServer
public static DomainInfo UpdateDomainRegistrationData(DomainInfo domain, DateTime? creationDate, DateTime? expirationDate)
{
domain.CreationDate = creationDate;
DataProvider.UpdateDomainCreationDate(domain.DomainId, creationDate.Value);
domain.ExpirationDate = expirationDate;
DataProvider.UpdateDomainExpirationDate(domain.DomainId, expirationDate.Value);
if (creationDate != null)
{
domain.CreationDate = creationDate;
DataProvider.UpdateDomainCreationDate(domain.DomainId, creationDate.Value);
}
if (expirationDate != null)
{
domain.ExpirationDate = expirationDate;
DataProvider.UpdateDomainExpirationDate(domain.DomainId, expirationDate.Value);
}
DataProvider.UpdateDomainLastUpdateDate(domain.DomainId, DateTime.Now);
return domain;