Files
Chat/ChatController/Data/OwnChatApi.cs
Lyndon 3fbf8afe0d Anzeige von neuen Nachrichten und die Ladegeschwindigkeit von Konversationen verbessert
Aufgrund der Benutzung von Threads anstelle von Timern hat das Aufrufen der einzelnen Konversationen ca. 2 Sekunden gedauert.
Die Synchronisationsdatei enthält, ob die letzte Nachrichte bereits gelesen wurde, sodass man,
wenn man den Chat beendet bevor man eine neue Nachricht gelesen hat, diese nach dem erneuten Öffnen immer noch als neu angezeigt wird.

- Dateinamen verbessert
- Diverse Verbesserungen des Codes
2019-05-14 13:37:20 +02:00

108 lines
3.4 KiB
C#

using System;
using System.IO;
using System.Net;
using ChatController.LoginKlassen;
using ChatController.Utilities;
using Newtonsoft.Json;
namespace ChatController.Data
{
public class OwnChatApi
{
public static string ServerUrl { get; set; }
public static string ApiKey { get; set; }
public static string Tenant { get; set; }
public static long GetMaximumAllowedFileUploadSize(string pApiKey, string pCustomerId)
{
var url = ServerUrl + Constants.MaxUploadFileSizeUrl;
var webRequest = WebRequest.Create(url);
webRequest.Headers[Constants.Token] = pApiKey;
webRequest.Headers[Constants.CustomerId] = pCustomerId;
webRequest.Credentials = CredentialCache.DefaultCredentials;
webRequest.Proxy = null;
using (var response = webRequest.GetResponse())
{
var responseFromServer = ReadStream(response);
var definiti = new {file_upload_max_size = ""};
var jsonDatentyp = JsonConvert.DeserializeAnonymousType(responseFromServer, definiti);
return Convert.ToInt64(jsonDatentyp.file_upload_max_size);
}
}
public static UserMessages GetMessages(long pGroupId)
{
var url = ServerUrl + Constants.LoadMessagesForGroupUrl + pGroupId;
var webRequest = WebRequest.Create(url);
webRequest.Credentials = CredentialCache.DefaultCredentials;
webRequest.Headers[Constants.Token] = ApiKey;
webRequest.Headers[Constants.CustomerId] = Tenant;
using (var response = webRequest.GetResponse())
{
var serverResponse = ReadStream(response);
if (!string.IsNullOrEmpty(serverResponse))
{
return JsonConvert.DeserializeObject<UserMessages>(serverResponse);
}
}
return null;
}
public ChatGruppenDaten GetAllChatGroups()
{
var endurl = ServerUrl + Constants.GetChatGroupsUrl;
var webRequest = WebRequest.Create(endurl);
webRequest.Credentials = CredentialCache.DefaultCredentials;
webRequest.Headers[Constants.Token] = ApiKey;
webRequest.Headers[Constants.CustomerId] = Tenant;
using (var response = webRequest.GetResponse())
{
var serverResponse = ReadStream(response);
return JsonConvert.DeserializeObject<ChatGruppenDaten>(serverResponse);
}
}
public static string ReadStream(WebResponse response)
{
try
{
var serverResponse = string.Empty;
using (var dataStream = response.GetResponseStream())
{
if(dataStream == null)
{
return serverResponse;
}
using (var reader = new StreamReader(dataStream))
{
serverResponse = reader.ReadToEnd();
return serverResponse;
}
}
}
catch (Exception exception)
{
return null;
}
}
}
}