C# – AMAGNO API Tutorial

AMAGNO Content Enterprise Management
Webinar ansehen

Wir zeigen Ihnen in unserem Webinar, wie Sie Ihre täglichen Herausforderungen im Umgang mit Ihren Dokumenten und Prozessen lösen können.

Kontakt

Sie möchten direkt mit uns sprechen? Kein Problem!

Telefon: +49 441 309 123 45

Ziel des Tutorials

In diesem Tutorial wird ein einfacher Windows Client mit Hilfe von C# entwickelt, mit welchem über die AMAGNO Api eine Suche nach Dokumenten ausgeführt und die gefundenen Dokumente heruntergeladen werden können.

Systemvoraussetzungen

  • AMAGNO ab Version 4.7

Ihr Kenntnisstand

  • C# Kenntnisse

Verwendete Werkzeuge

Tutorialvideo

Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

Tutorial

Projektbeschreibung

Wir werden einen einfachen amagno Windows Client entwickeln. Dieser Client wird nach Dokumenten suchen und gefundene Dokumente herunterladen können. Für die Entwicklung werden wir die Entwicklungsumgebung Microsoft Visual Studio 2013 und die Programmiersprache C# verwenden.

Vorbereitung

Zu Beginn laden wir die amagno API herunter. Dieses Assembly beinhaltet alle von der API verwendeten Klassen und kann zum De-serialisieren der JSON-Objekte genutzt werden. Danach erstellen wir ein neues Windows Forms Projekt und füge das Assembly als Referenz hinzu.

Für die Kommunikation mit dem REST-Service werden die RestSharp verwendet. Um die daraus entstehenden Daten zu de-serialisieren, werden wir Json.NET benutzen. Diese beiden Komponenten fügen wir über den NuGet package manager hinzu.

Realisierung

Wir positionieren eine Textbox (searchTextBox) für den Suchbegriff, eine ListView (listView1) für die Anzeige der Suchergebnisse und zwei Buttons (SearchBtn und DownloadBtn) für das Auslösen der Suche und den Download auf der Form. In dem Click-Event des 1. Buttons (SearchBtnClick) lösen wir die Suche aus.


private void SearchBtnClick(object sender, EventArgs e)
{
listView1.Items.Clear();

var client = new RestClient(„http://localhost/amagnome/api“)
{
Authenticator = new HttpBasicAuthenticator(„hw@amagno.me“, „hannes“)
};

var request = new RestRequest(„content/search“);
request.AddParameter(„searchstring“, searchTextBox.Text);

var resp = client.Execute(request);
var contents = JsonConvert.DeserializeObject<AmagnoContentResponse[]>(resp.Content);

foreach (var content in contents)
{
var item = new ListViewItem(content.Name) { Tag = content };
item.SubItems.Add(content.FileCreateDate);
item.SubItems.Add(content.FileChangeDate);
listView1.Items.Add(item);
}
}

Wir verändern die Property „View“ des ListView-Controls auf „Details“, damit, neben dem Namen des Dokumentes, auch das Erstellungsdatum und das Änderungsdatum angezeigt wird. In dem Click-Event des 2. Buttons (DownloadBtnClick) entwickeln wir nun den Download des im ListView selektierten Dokumentes.
private void DownloadBtnClick(object sender, EventArgs e)
{
AmagnoContentResponse content;
if (listView1.SelectedItems.Count != 1 ||
(content = listView1.SelectedItems[0].Tag as AmagnoContentResponse) == null) return;

using (var dlg = new FolderBrowserDialog())
{
if (dlg.ShowDialog() != DialogResult.OK) return;

var client = new RestClient(„http://localhost/amagnome/api“)
{
Authenticator = new HttpBasicAuthenticator(„hw@amagno.me“, „hannes“)
};

var request = new RestRequest(„content/{id}/originalformat“);
request.AddUrlSegment(„id“, content.Id.ToString());

var response = client.Execute(request);
if (response.StatusCode == HttpStatusCode.OK)
File.WriteAllBytes(Path.Combine(dlg.SelectedPath, content.Name), response.RawBytes);
}
}

Fazit

Wir haben nun innerhalb von wenigen Minuten, einen simplen Windows Client für amagno entwickelt, mit dem nach Dokumenten gesucht werden kann. Ebenfalls ist der Download der Dokumente im Originalformat möglich.

 

Das könnte Sie auch interessieren:

Grafik Blogartikel Digitale Souveraenitaet 830x484 - Digitale Souveränität & Datenhoheit: Warum Kontrolle wichtiger ist als der Serverstandort allein
Digitale Souveränität & Datenhoheit: Warum Kontrolle wichtiger ist als der Serverstandort allein
Grafik Blogartikel No Code Workflows 830x484 - No-Code-Workflows in Amagno: Prozesse ohne Programmierkenntnisse selbst bauen
No-Code-Workflows in Amagno: Prozesse ohne Programmierkenntnisse selbst bauen
Grafik Blogartikel IDP Titel 1 830x484 - Intelligent Document Processing (IDP): Effiziente Dokumentenverarbeitung mit KI
Intelligent Document Processing (IDP): Effiziente Dokumentenverarbeitung mit KI