C# Examples for adaline.report
C# code examples for the Adaline Report API using HttpClient.
Examples use .NET's built-in HttpClient. No NuGet packages required.
Setup
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
class AdalineReportClient
{
private const string BaseUrl = "https://api.adaline.report";
private const string ApiKey = "your-api-key";
private static readonly HttpClient client = new();
static AdalineReportClient()
{
client.DefaultRequestHeaders.Add("X-API-Key", ApiKey);
}
static async Task<string> ApiRequest(HttpMethod method, string path, string? body = null)
{
var request = new HttpRequestMessage(method, BaseUrl + path);
if (body != null)
request.Content = new StringContent(body, Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
return await response.Content.ReadAsStringAsync();
}
}
Scan a Document
static async Task<string> ScanDocument(string filePath)
{
using var form = new MultipartFormDataContent();
using var fileStream = File.OpenRead(filePath);
var fileContent = new StreamContent(fileStream);
form.Add(fileContent, "file", Path.GetFileName(filePath));
var request = new HttpRequestMessage(HttpMethod.Post, BaseUrl + "/api/v1/scan");
request.Headers.Add("X-API-Key", ApiKey);
request.Content = form;
var response = await client.SendAsync(request);
return await response.Content.ReadAsStringAsync();
}
static async Task Main(string[] args)
{
var result = await ScanDocument("syllabus.pdf");
var json = JsonDocument.Parse(result).RootElement;
Console.WriteLine($"Score: {json.GetProperty("overall_score")}% " +
$"(Grade {json.GetProperty("grade")})");
}
List Reports
var reports = await ApiRequest(HttpMethod.Get, "/api/v1/reports?page=1");
Console.WriteLine(reports);
Create a Tag
var tag = await ApiRequest(HttpMethod.Post, "/api/v1/tags",
JsonSerializer.Serialize(new { name = "reviewed", color = "green" }));
Console.WriteLine(tag);
Tag a Report
await ApiRequest(HttpMethod.Post, $"/api/v1/tags/{tagId}/reports/{reportId}");
Share a Report
var share = await ApiRequest(HttpMethod.Post, $"/api/v1/reports/{reportId}/share");
Console.WriteLine(share);
Batch Scan
static async Task BatchScan(string directory)
{
var extensions = new[] { ".pdf", ".docx", ".pptx" };
foreach (var file in Directory.GetFiles(directory)
.Where(f => extensions.Contains(Path.GetExtension(f).ToLower())))
{
Console.WriteLine($"Scanning {Path.GetFileName(file)}...");
try
{
var result = await ScanDocument(file);
var json = JsonDocument.Parse(result).RootElement;
Console.WriteLine($" Score: {json.GetProperty("overall_score")}% " +
$"({json.GetProperty("grade")})");
}
catch (Exception ex)
{
Console.WriteLine($" Error: {ex.Message}");
}
}
}