cPanelSharp Newtonsoft.Json cPanelSharp Newtonsoft.Json Newtonsoft.Json.Linq cPanelClient Client = new cPanelClient("silvenga", "ghost.mxroute.com", password: Util.GetPassword("mxroute-silvenga"), cpanel: true); void Main() { CreateDomain("enga.me", "silvenga.net"); } public void CreateDomain(string domain, string forwardTo) { var domainExists = ListAliasDomains().Any(x => x == domain); if (!domainExists) { Console.WriteLine("Creating alais."); CreateAliasDomains(domain); } var forwardExists = ListDomainForwards().Any(x => x.Dest == domain); if (!forwardExists) { Console.WriteLine("Creating forward."); CreateDomainForwards(domain, forwardTo); } } public IList ListAliasDomains() { var json = Client.Api2("Park", "listparkeddomains"); var result = JObject.Parse(json); return result["cpanelresult"]["data"].ToArray() .Select(x => x["domain"]) .Select(x => x.ToObject()) .ToList(); } public void CreateAliasDomains(string domain) { Client.Api2("Park", "park", param: new { domain = domain }); } public IList<(string Forward, string Dest)> ListDomainForwards() { var json = Client.Api2("Email", "listdomainforwards"); var result = JObject.Parse(json); return result["cpanelresult"]["data"].ToArray() .Select(x => (x["forward"].ToObject(), x["dest"].ToObject())) .ToList(); } public void CreateDomainForwards(string from, string to) { Client.Api2("Email", "adddomainforward", param: new { domain = from, destdomain = to }).Dump(); }