Files
Chat/ChatController/Data/OwnChatApi.cs

108 lines
3.4 KiB
C#
Raw Normal View History

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