146 lines
4.0 KiB
C#
146 lines
4.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
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)
|
|
//{
|
|
var m = AppSettings.GetMandatorEntity();
|
|
var tenant = PluginLoader.Tenant;
|
|
|
|
StartOwnChatSync(m.Apikey, tenant);
|
|
//}
|
|
}
|
|
|
|
private static void StartOwnChatSync(String apiKey, String tenant)
|
|
{
|
|
|
|
if (!String.IsNullOrEmpty(apiKey))
|
|
{
|
|
try
|
|
{
|
|
var serverUrl = ErmittleServerURL(tenant);
|
|
|
|
if (!String.IsNullOrEmpty(serverUrl))
|
|
{
|
|
#if DEBUG
|
|
var endurl = serverUrl + "/api/ownchat/sync/schedule/" + apiKey + "/5473568546";
|
|
|
|
#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);
|
|
|
|
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);
|
|
}
|
|
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|