# FIT-Connect .NET SDK User Guide ## Einleitung Das FIT-Connect .NET SDK bietet eine einfache Möglichkeit, sowohl einen Antragsteller (Sender) als auch einen Antragsempfänger (Subscriber) an FIT-Connect anzubinden. ## Voraussetzungen ### OSX Auf OSX wird das SDK nur dann unterstützt, wenn OpenSSL auf dem System installiert ist. ```sh brew install openssl@1.1 ``` Die Environment-Variable ```DYLD_LIBRARY_PATH``` muss auf den Pfad zu OpenSSL verweisen. _Beispiele:_ ```sh export DYLD_LIBRARY_PATH=/usr/local/opt/openssl/lib export DYLD_LIBRARY_PATH=/usr/local/opt/openssl@1.1/lib ``` ### Sender Um einen Antrag mit dem SDK versenden zu können, werden eine ClientID und ein ClientSecret benötigt. Diese können im FIT-Connect Self-Service-Portal erzeugt werden. [Offizelle Dokumentation von FIT-Connect zum Versenden von Einreichungen (Anträgen)](https://docs.fitko.de/fit-connect/docs/sending/overview) ### Subscriber Der Subscriber benötigt sowohl eine ClientID und das ClientSecret, aber auch die Schlüsselpaare zur Verschlüsselung wie auch zum Signieren der Daten. Zu Testzwecken können selbstgenerierte Schlüsselpaare mit dem [hierzu bereitgestellten Tool](https://docs.fitko.de/fit-connect/docs/details/jwk-creation) erzeugt werden. In der Produktivumgebung müssen hierzu [Zertifikate der Verwaltungs-PKI zu Einsatz kommen](https://docs.fitko.de/fit-connect/docs/receiving/certificate). [Offizielle Dokumentation von FIT-Connect zum Abrufen von Einreichungen](https://docs.fitko.de/fit-connect/docs/receiving/overview) # Beispiele ## Sender ```csharp var submission = Client .GetSender(FitConnectEnvironment.Development, clientId, clientSecret, logger) .WithDestination(destinationId) .WithServiceType("FIT Connect Demo", leikaKey) .WithAttachments(new Attachment("Test.pdf", "Test Attachment")) .WithData("{\"message\":\"Hello World\"}") .Submit(); ``` ## Subscriber ### Erstellen des Subscribers ```csharp var subscriber = Client.GetSubscriber(FitConnectEnvironment.Development, clientId, clientSecret, privateKeyDecryption, privateKeySigning, publicKeyEncryption, publicKeySignatureVerification, logger); ``` ### Abrufen der Submissions ```csharp var submissions = subscriber.GetAvailableSubmissions(); ``` ### Abrufen der Submissions mit den Anhängen ```csharp foreach (var submission in submissions) { var subscriberWithSubmission = subscriber.RequestSubmission(submission.SubmissionId); var data = subscriber.GetDataJson(); var attachments = subscriberWithSubmission .GetAttachments(); // Submission accept subscriberWithSubmission .AcceptSubmission(); // or submission reject subscriberWithSubmission .RejectSubmission(); } ```