Offlineer.Lib.Service
1.3.0
dotnet add package Offlineer.Lib.Service --version 1.3.0
NuGet\Install-Package Offlineer.Lib.Service -Version 1.3.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Offlineer.Lib.Service" Version="1.3.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Offlineer.Lib.Service" Version="1.3.0" />
<PackageReference Include="Offlineer.Lib.Service" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Offlineer.Lib.Service --version 1.3.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Offlineer.Lib.Service, 1.3.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Offlineer.Lib.Service@1.3.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Offlineer.Lib.Service&version=1.3.0
#tool nuget:?package=Offlineer.Lib.Service&version=1.3.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Offlineer.Lib.Service
A .NET client library for the Offlineer API, providing simple and type-safe access to license management through the Offlineer proxy to License8. Supports multiple Offlineer apps with a unified API interface.
Installation
dotnet add package Offlineer.Lib.Service
Quick Start
using Offlineer.Lib.Service;
using static Offlineer.Lib.Service.OfflineerAppLicenseClient;
// Initialize the client with environment and credentials
var client = new SoloPDFLicenseClient(
env: Env.test, // or Env.production, Env.local
appKey: "your-app-key",
appSecret: "your-app-secret" // Optional for some endpoints
);
// Authenticate with a license key
var authResponse = await client.AuthenticateWithLicenseKeyAsync("XXXXX-XXXXX-XXXXX-XXXXX");
if (authResponse != null)
{
Console.WriteLine($"Authenticated! JWT: {authResponse.Jwt}");
Console.WriteLine($"License ID: {authResponse.LicenseID}");
Console.WriteLine($"Max Devices: {authResponse.MaxDevices}");
// Register a device
var deviceResponse = await client.RegisterNewDeviceAsync(
deviceID: "unique-device-id",
deviceLabel: "User's Laptop",
machineName: Environment.MachineName
);
// Validate token
var isValid = await client.ValidateTokenAsync();
Console.WriteLine($"Token valid: {isValid}");
// List registered devices
var devices = await client.ListRegisteredDevicesAsync();
Console.WriteLine($"Total devices: {devices?.Count ?? 0}");
}
// Get license details
var licenseDetails = await client.GetLicenseDetailsAsync("license-id");
// Create a trial license
var trialLicense = await client.CreateTrialLicenseAsync(
deviceID: "device-123",
email: "user@example.com",
ttlDays: 30,
simplifyLicenseKeys: true
);
Environment Configuration
The client supports three environments:
Env.local-http://localhost/Web.Service.OfflineerEnv.test-https://api-test-offlineer.jtigernova.comEnv.production-https://api-offlineer.jtigernova.com
Features
- Multi-App Support: Base architecture supports multiple Offlineer apps through inheritance
- Environment Management: Built-in support for local, test, and production environments
- License Management: Create, issue, revoke, and retrieve license details through Offlineer proxy
- Device Registration: Register and manage devices for licensed users
- JWT Authentication: Automatic token management with thread-safe operations
- Trial Licenses: Issue time-limited trial licenses
- Type-Safe: Strongly-typed request and response models
- Async/Await: Full async support with cancellation tokens
API Endpoints
System Management
CheckAliveAsync()- Check if API is aliveCheckApiStatusAsync()- Check License8 API status
License Management
GetLicenseDetailsAsync(licenseID)- Get license detailsIssueLicenseTokenAsync(licenseID, trialEmail?)- Issue license tokenCreateNewLicenseAsync(...)- Create new licenseCreateTrialLicenseAsync(...)- Create trial licenseRevokeLicenseAsync(licenseID, reason)- Revoke license
Token Operations
AuthenticateWithLicenseKeyAsync(licenseKey)- Authenticate with license keyRenewTokenAsync()- Renew/refresh tokenValidateTokenAsync()- Validate current tokenSetJwt(jwt)- Manually set JWT tokenClearJwt()- Clear JWT token
Device Management
ListRegisteredDevicesAsync()- List registered devicesRegisterNewDeviceAsync(...)- Register new deviceDisableDeviceAsync(deviceIDHash)- Disable device
Architecture
The library uses an inheritance-based architecture for supporting multiple Offlineer apps:
Core Components
OfflineerAppLicenseClient- Abstract base class containing all License8 API functionality (internal)SoloPDFLicenseClient- Public client for SoloPDF app, inherits from base classLicense8Models.cs- Request and response models for all API operations
Dependencies
- RestSharp (v112.1.0)
- .NET Standard 2.0
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Offlineer.Lib (>= 1.2.0)
- RestSharp (>= 112.1.0)
- System.Threading.Tasks.Extensions (>= 4.6.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.3.0 | 144 | 4/21/2026 |
| 1.2.0 | 119 | 4/19/2026 |
| 1.1.2 | 126 | 4/18/2026 |
| 1.1.1 | 114 | 4/18/2026 |
| 1.1.0 | 125 | 4/18/2026 |
| 1.0.2 | 147 | 2/21/2026 |
| 1.0.1 | 128 | 2/21/2026 |
| 1.0.0 | 131 | 2/21/2026 |
| 0.13.0 | 142 | 12/30/2025 |
| 0.12.0 | 138 | 12/30/2025 |
| 0.11.1 | 140 | 12/29/2025 |
| 0.11.0 | 130 | 12/29/2025 |
| 0.10.2 | 213 | 12/24/2025 |
| 0.10.1 | 211 | 12/24/2025 |
| 0.10.0 | 215 | 12/23/2025 |
| 0.9.0 | 162 | 12/20/2025 |
| 0.8.4 | 722 | 12/3/2025 |
| 0.8.3 | 701 | 12/3/2025 |
| 0.8.2 | 725 | 12/2/2025 |
| 0.8.1 | 242 | 11/5/2025 |
Loading failed