10. Juli 2014

C# – AMAGNO API Tutorial

C# – AMAGNO API Tutorial

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

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.

Download Beispielprojekt

AMAGNO NEWSLETTER

DIE BESTEN NEWS DIREKT INS POSTFACH!

AMAGNO NEWSLETTER

DIE BESTEN NEWS DIREKT INS POSTFACH.

Teilen:

Jens Büscher
Jens Büscher, Gründer und CEO. Nach seiner Tätigkeit als Product Manager für die RedDot Solutions AG (Heute OpenText) gründete er 2010 AMAGNO als innovative Enterprise Content Management Lösung.

Kommentare sind geschlossen.

Starten Sie mit einem kostenfreien Account.

  voller Funktionsumfang
  keine Vertragsbindung
  300 MB inklusive


 
ANMELDEN 
*erforderliche Angaben zur Erstellung eines AMAGNO Accounts

Selfhtml
Den kostenfreien Account stellen wir Ihnen zur Verfügung, wenn wir Ihnen im Gegenzug regelmäßig per E-Mail Update Informationen, News & Produktinformationen zusenden dürfen. Die AMAGNO GmbH & Co. KG wird Ihre Daten ausschließlich für den zuvor genannten Zweck verwenden und nicht an Dritte weitergeben. Sie können den Versand in jeder Versandmail abbestellen oder der Speicherung Ihrer Daten per E-Mail an datenschutz@amagno.de widersprechen und Ihre Daten jederzeit löschen, sofern der Löschung keine gesetzlichen Aufbewahrungspflichten entgegenstehen. Durch Absenden der von Ihnen eingegebenen Daten willigen Sie in die Datenverarbeitung ein und bestätigen unsere Datenschutzerklärung und die Endbenutzerlizenzvereinbarung.
close-link