Files
BeWoPlaner/Service/OwnChat/OwnChatHelper.cs

142 lines
3.9 KiB
C#
Raw Normal View History

2020-04-08 14:25:01 +02:00
using System;
using System.IO;
using System.Net;
using BeWo.Service.Configuration;
using BeWo.Service.Core;
using BeWo.Service.Plugins;
using Newtonsoft.Json;
namespace BeWo.Service.OwnChat
{
public class OwnChatHelper
{
public static void StartOwnChatSync()
{
//if (AppSettings.CreateSettings().ShowChat)
//{
2020-04-08 14:25:01 +02:00
var m = AppSettings.GetMandatorEntity();
var tenant = PluginLoader.Tenant;
2020-04-08 14:25:01 +02:00
StartOwnChatSync(m.Apikey, tenant);
//}
2020-04-08 14:25:01 +02:00
}
private static void StartOwnChatSync(String apiKey, String tenant)
{
2020-04-08 14:25:01 +02:00
if (!String.IsNullOrEmpty(apiKey))
{
try
{
var serverUrl = ErmittleServerURL(tenant);
if (!String.IsNullOrEmpty(serverUrl))
{
#if DEBUG
var endurl = serverUrl + "/api/ownchat/sync/schedule/" + apiKey + "/5473568546";
2020-04-08 14:25:01 +02:00
#else
var endurl = serverUrl + "/api/ownchat/sync/schedule/" + apiKey + "/" + tenant;
#endif
WebRequest request = WebRequest.Create(endurl);
request.Credentials = CredentialCache.DefaultCredentials;
var response = request.GetResponse();
response.Close();
response.Dispose();
}
}
catch (Exception e)
{
// MessageBox.Show("Die Verbindung konnte nicht aufgebaut werden.", "ownChat Fehler ", MessageBoxButton.OK);
}
}
}
public static string ErmittleServerURL(string tenant)
{
//CB HACK solange App4 nicht geht:
return GetUrlFromApp6(tenant);
2020-04-08 14:25:01 +02:00
try
{
string url = "https://dict.ownchat.de/api/server/resolve/1/" + tenant;
WebRequest request = WebRequest.Create(url);
request.Credentials = CredentialCache.DefaultCredentials;
WebResponse response = request.GetResponse();
string responseFromServer = ReadStreamForChatCode(response);
var definition = new { status = "", URL = "", SYNCTYPE = "" };
var jsondaten = JsonConvert.DeserializeAnonymousType(responseFromServer, definition);
string serverUrl = jsondaten.URL;
response.Close();
return serverUrl;
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
private static string GetUrlFromApp6(string tenant)
{
try
{
string url = "https://app6.bewoplaner.de/mobil/Chat/GetServerUrl?k=" + tenant;
WebRequest request = WebRequest.Create(url);
request.Credentials = CredentialCache.DefaultCredentials;
WebResponse response = request.GetResponse();
string responseFromServer = ReadStreamForChatCode(response);
return responseFromServer;
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
2020-04-08 14:25:01 +02:00
private static string ReadStreamForChatCode(WebResponse response)
{
try
{
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
dataStream.Dispose();
reader.Dispose();
dataStream.Close();
reader.Close();
return responseFromServer;
}
catch (Exception e)
{
return null;
}
}
}
}