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

cb no thumbnail - C# - AMAGNO API Tutorial

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube. Beachten Sie bitte, dass dadurch personenbezogene Daten an Youtube übertragen werden. Weitere Informationen zu Art und Umfang finden Sie in unserer Datenschutzerklärung, sowie in der Datenschutzerklärung von Youtube.

Video laden

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.

AMAGNO NEWSLETTER

DIE BESTEN NEWS DIREKT INS POSTFACH!

AMAGNO NEWSLETTER

DIE BESTEN NEWS DIREKT INS POSTFACH.

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.

Amagno