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();
}