using System; namespace Deploymentcenter.Client { /// /// Auskunft ueber die eingebundene SDK-Fassung. /// /// Wozu das gut ist: Wer eine Anbindung aktualisiert, will nicht die /// gesamte Historie lesen, sondern nur wissen, was sich seit der eigenen /// Fassung geaendert hat. Dafuer muss die Anwendung festhalten, gegen /// welche Fassung sie gebaut wurde - und genau das ist /// . /// /// Der Wert wandert automatisch in die Update-Pruefung und den Heartbeat, /// sodass im Deploymentcenter sichtbar wird, welche Installation auf /// welchem Stand haengt. Ohne diese Angabe bliebe nur Nachfragen. /// /// Abfragen laesst sich der Unterschied so: /// /// GET /api/updateservice/v1/changelog?since=2.2.0 /// /// Die Antwort nennt nur die neueren Fassungen, dazu die Anzahl der /// Punkte mit Handlungsbedarf und der brechenden Aenderungen. /// public static class DeploymentcenterSdk { /// /// Fassung dieses SDK. Bei jeder Auslieferung mitzufuehren - sie ist /// der Bezugspunkt fuer den Changelog. /// public const string Version = "2.5.0"; /// /// Adresse, unter der sich der Unterschied zur eigenen Fassung /// abfragen laesst. /// public static string ChangelogUrl(string baseUrl, string? since = null) { string clean = (baseUrl ?? string.Empty).TrimEnd('/'); string url = clean + "/api/updateservice/v1/changelog"; string from = string.IsNullOrWhiteSpace(since) ? Version : since!; return url + "?since=" + Uri.EscapeDataString(from); } /// /// Kurzer Vermerk fuer Protokolle und Fehlerberichte. Taucht ein /// Problem auf, ist damit sofort ersichtlich, gegen welche Fassung die /// Anbindung gebaut wurde. /// public static string Describe(string? appVersion = null) { return string.IsNullOrWhiteSpace(appVersion) ? $"Deploymentcenter-SDK {Version}" : $"{appVersion} (Deploymentcenter-SDK {Version})"; } } }