Skip to main content

.NET Examples

C# examples using HttpClient.

Authentication

using System.Net.Http;
using System.Text;
using System.Text.Json;

const string BaseUrl = "https://staging.api.ecourtdate.com";
var httpClient = new HttpClient();

async Task<string> GetTokenAsync(string clientId, string clientSecret)
{
var payload = JsonSerializer.Serialize(new
{
client_id = clientId,
client_secret = clientSecret,
grant_type = "client_credentials"
});

var response = await httpClient.PostAsync(
$"{BaseUrl}/oauth/token",
new StringContent(payload, Encoding.UTF8, "application/json"));

response.EnsureSuccessStatusCode();
var result = await JsonSerializer.DeserializeAsync<JsonElement>(
await response.Content.ReadAsStreamAsync());
return result.GetProperty("access_token").GetString()!;
}

Send a Message

async Task<JsonElement> SendMessageAsync(string token, string to, string subject, string content)
{
httpClient.DefaultRequestHeaders.Clear();
httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");

var payload = JsonSerializer.Serialize(new { to, subject, content });
var response = await httpClient.PostAsync(
$"{BaseUrl}/v1/messages/oneoffs",
new StringContent(payload, Encoding.UTF8, "application/json"));

response.EnsureSuccessStatusCode();
return await JsonSerializer.DeserializeAsync<JsonElement>(
await response.Content.ReadAsStreamAsync());
}

Create Client

async Task<JsonElement> CreateClientAsync(string token, string firstName, string lastName,
string phone, string email, string reference)
{
httpClient.DefaultRequestHeaders.Clear();
httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");

var payload = JsonSerializer.Serialize(new
{
first_name = firstName,
last_name = lastName,
phone,
email,
client_reference = reference
});

var response = await httpClient.PostAsync(
$"{BaseUrl}/v1/clients",
new StringContent(payload, Encoding.UTF8, "application/json"));

response.EnsureSuccessStatusCode();
return await JsonSerializer.DeserializeAsync<JsonElement>(
await response.Content.ReadAsStreamAsync());
}