10. Juli 2014

C# – AMAGNO API Tutorial

C# – AMAGNO API Tutorial

Ziel des Tutorials

In diesem Tutorial wird ein einfacher Windows Client 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

Jens Büscher
Jens ist Gründer und CEO von AMAGNO. Nach vielen Jahren im öffentlichen Dienst wechselte Jens als Product Manager zum Web Content Management Anbieter RedDot Solutions AG. Anschließend gründete er zuerst DocuPortal und im Jahr 2010 AMAGNO als innovative Enterprise Content Management Lösung.

Kommentare sind geschlossen.

X