Xolphin API wrapper for .NET

XolphinApiDotNet is a client library targeting .NET 4.5 and above that provides an easy way to interact with the Xolphin REST API.

Library installation

There are 2 ways to use XolphinApiDotNet:

  • Install-package XolphinApiDotNet (via Nuget)
  • Download source and compile

Usage

Client initialization

var client = new Client("<username>", "<password>");

Calling conventions

Most of the Requests classes have ability to assign the additional parameters of the request with 2 ways:

var reissue = new XolphinApiDotNet.Requests.Reissue(<csr_string>, DCVType.Email);
// 1. Fluent style
reissue.SetApproverEmail("email@example.com");
// 2. Property assignment
reissue.ApproverEmail = "email@example.com";

Request operations

Getting list of requests

// GET /requests
var requests = client.Request.All();
foreach (var request in requests)
{
    Console.WriteLine(request.Id);
}

Order certificate

// POST /requests
var products = client.Support.Products();
if (products.Any())
{
    var productId = products.First().Id;
    // request certificate for 1 year
    var requestsRequest = new XolphinApiDotNet.Requests.Request(productId, 1, <csr_string>, DCVType.Email)
        .SetApproverFirstName("<first_name>")
        .SetApproverLastName("<last_name>")
        .SetApproverPhone("+12345678901")
        .SetZipcode("123456")
        .SetŠ”ity("<city>")
        .SetCompany("<company>")
        .SetApproverEmail("<email>")
        .AddSubjectAlternativeName("test1.example.com")
        .AddSubjectAlternativeName("test2.example.com")
        .AddSubjectAlternativeName("test3.example.com")
        .AddDcv(new RequestDCV("test1.example.com", DCVType.Email, "email1@example.com"))
        .AddDcv(new RequestDCV("test2.example.com", DCVType.Email, "email2@example.com"));

    var responsesRequest = client.Request.Send(requestsRequest);
    Console.WriteLine(responsesRequest.Id);
}

Getting single request

// GET /requests/{id}
var responseRequest = client.Request.Get(960000002);
Console.WriteLine(responseRequest.Id);

Upload new request document

// POST /requests/{id}/upload-document
var uploadResponse = client.Request.Upload(960000002, new UploadDocument("<file_name>", File.ReadAllBytes("document.pdf")).SetDescription("<description>"));
Console.WriteLine(uploadResponse.Message);

Retry DCV

// POST /requests/{id}/retry-dcv
var retryDcvResponse = client.Request.RetryDCV(960000002, new DCV("test.example.com", DCVType.Email, "email@example.com"));
Console.WriteLine(retryDcvResponse.Message);

Send Subscriber Agreement

// POST /requests/{id}/sa
var subscribe = client.Request.Subscribe(960000002, "email@example.com");
Console.WriteLine(subscribe.Message);

Schedule validation call

// POST /requests/{id}/schedule-validation-call
var scheduleValidationCallResponse = client.Request.ScheduleValidationCall(960000002, DateTime.Now);
Console.WriteLine(scheduleValidationCallResponse.Message);

Certificate operations

Getting list of certificates

// GET /certificates
var certificates = client.Certificate.All();
foreach (var certificate in certificates)
{
    Console.WriteLine(certificate.Id);
}

Getting single certificate

// GET /certificates/{id}
var certificate = client.Certificate.Get(960000002);
Console.WriteLine(certificate.Id);

Download certificate

// GET /certificates/{id}/download
var downloadResult = client.Certificate.Download(960000002);

Reissue certificate

// POST /certificates/{id}/reissue
var reissue = new XolphinApiDotNet.Requests.Reissue(<csr_string>, DCVType.Email);
var responsesRequest = client.Certificate.Reissue(960000002, reissue);
Console.WriteLine(responsesReissue.Id);

Renew certificate

// POST /certificates/{id}/renew
var products = client.Support.Products();
var productId = products.First().Id;
// renew certificate for 1 year
var renew = new XolphinApiDotNet.Requests.Renew(productId, 1, <csr_string>, DCVType.Email);
var responsesRequest = client.Certificate.Renew(960000002, renew);
Console.WriteLine(responsesRequest.Id);

Cancel certificate

// POST /certificates/{id}/cancel
var cancelSettings = new XolphinApiDotNet.Requests.CancelSettings("cancellation reason");
var responsesBase = client.Certificate.Cancel(960000002, cancelSettings);

Supporting operations

Getting list of approver e-mail addresses

// GET /approver-email-addresses
var emailAddresses = client.Support.ApproverEmailAddresses("example.com");
foreach (var emailAddress in emailAddresses)
{
    Console.WriteLine(emailAddress);
}

Decode CSR

// POST /decode-csr
var csr = client.Support.DecodeCSR(<csr_string>);
Console.WriteLine(csr.Type);

Getting list of products

// GET /products
var products = client.Support.Products();
foreach (var product in products)
{
    Console.WriteLine(product.Id);
}

Getting single product

// GET /products/{id}
var product = client.Support.Product(960000002);
Console.WriteLine(product.Name);
point up