XtremeIdiots.Redirect.Api.Client.V1 1.0.20

dotnet add package XtremeIdiots.Redirect.Api.Client.V1 --version 1.0.20
                    
NuGet\Install-Package XtremeIdiots.Redirect.Api.Client.V1 -Version 1.0.20
                    
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="XtremeIdiots.Redirect.Api.Client.V1" Version="1.0.20" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="XtremeIdiots.Redirect.Api.Client.V1" Version="1.0.20" />
                    
Directory.Packages.props
<PackageReference Include="XtremeIdiots.Redirect.Api.Client.V1" />
                    
Project file
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 XtremeIdiots.Redirect.Api.Client.V1 --version 1.0.20
                    
#r "nuget: XtremeIdiots.Redirect.Api.Client.V1, 1.0.20"
                    
#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 XtremeIdiots.Redirect.Api.Client.V1@1.0.20
                    
#: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=XtremeIdiots.Redirect.Api.Client.V1&version=1.0.20
                    
Install as a Cake Addin
#tool nuget:?package=XtremeIdiots.Redirect.Api.Client.V1&version=1.0.20
                    
Install as a Cake Tool

XtremeIdiots.Redirect.Api.Client.V1

services.AddRedirectApiClient(options => options
    .WithBaseUrl("https://maps.xtremeidiots.com")
    .WithEntraIdAuthentication("api://your-configured-resource"));

Resolve IRedirectApiClient. All calls return published MX ApiResult<T> envelopes; inspect IsSuccess, IsConflict, IsNotFound, and Result.Errors. Catalogue entries return authoritative direct download URLs and opaque versions. Pass the snapshot version on subsequent pages; restart on HTTP 409. Manifest(game, mapName, version) returns the complete recursive MapManifest for that same snapshot. Pass the version on the first page and every manifest as well. Missing maps return 404, oversized manifests 413, never partial success.

Bulk consumers can use BrowseTree(string path, string search = "", int page = 1, int pageSize = 50, string? version = null, CancellationToken cancellationToken = default). It returns ApiResult<CataloguePage> with flat indexed descendant directories and files, excluding the selected root, maximum200 entries per page. Ordinary Browse remains nonrecursive. Pin the same version across all Maps/BrowseTree pages and preserve each file's returned URL/version. Browse, BrowseTree, Maps and Manifest preserve409/404 error envelopes without converting them to CLIENT_ERROR. They retry429 within a bounded budget while respecting Retry-After and cancellation.

Uploads require a SHA256 checksum, explicit offsets and a final commit. UploadChunk accepts only one bounded chunk, not an entire file. After an ambiguous network failure query UploadStatus before resending. Mutations are not automatically retried. Archive jobs return a private download URL. The same registration supplies IRedirectDownloadClient: use OpenFile(ContentEntry, offset) or OpenArchive(ArchiveJob, offset, etag). It shares Entra authentication and returns a caller-owned HttpResponseMessage without buffering its body. Dispose the response after copying the stream. File versions and resume ranges are validated; archive URLs are same-origin. Append only on206; a200 resumed archive response requires restarting.

Service roles permit catalogue/files/transfers, not forum-only administration. All network methods accept cancellation tokens. Supports .NET 9 and .NET 10.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  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 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.0.20 147 10/28/2026
1.0.15 132 10/24/2026
1.0.13 98 10/24/2026
1.0.11 87 10/24/2026
1.0.9 99 10/23/2026
1.0.7 93 10/23/2026
1.0.5 87 10/23/2026
1.0.1 106 10/23/2026