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) //{ 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; } } } }