public static int AddDnsZoneRecord(int domainId, string recordName, DnsRecordType recordType, string recordData, int mxPriority) { // check account int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) return accountCheck; // load domain info DomainInfo domain = GetDomain(domainId); // check package int packageCheck = SecurityContext.CheckPackage(domain.PackageId, DemandPackage.IsActive); if (packageCheck < 0) return packageCheck; // get DNS service DnsZone zoneItem = (DnsZone)PackageController.GetPackageItem(domain.ZoneItemId); if(zoneItem == null) return 0; // place log record TaskManager.StartTask("DNS_ZONE", "ADD_RECORD", domain.DomainName); TaskManager.ItemId = domain.ZoneItemId; try { // check if record already exists if (GetDnsZoneRecord(domainId, recordName, recordType, recordData) != null) return 0; DNSServer dns = new DNSServer(); ServiceProviderProxy.Init(dns, zoneItem.ServiceId); DnsRecord record = new DnsRecord(); record.RecordType = recordType; record.RecordName = recordName; record.RecordData = recordData; record.MxPriority = mxPriority; dns.AddZoneRecord(zoneItem.Name, record); return 0; } catch (Exception ex) { throw TaskManager.WriteError(ex); } finally { TaskManager.CompleteTask(); } }