- Einfach als Embedded Ressource beim Build Vorgang wählen und durch SearchDAO.LoadSQLStatement verwenden
110 lines
2.7 KiB
C#
110 lines
2.7 KiB
C#
using BS.Shared.DataContracts;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Specialized;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace BS.Shared.AppSender
|
|
{
|
|
public static class AppRequestSender
|
|
{
|
|
private static readonly string GETSERVER_URL = "https://support.bewoplaner.de/api/getserver.php?k={0}&t=0";
|
|
|
|
public static string GetServerFromTenant(string tenant)
|
|
{
|
|
#if DEBUG
|
|
return "localhost:3777";
|
|
#endif
|
|
try
|
|
{
|
|
String url = String.Format(GETSERVER_URL, tenant);
|
|
using (WebClient client = new WebClient())
|
|
{
|
|
//MessageBox.Show(hostAddress);
|
|
byte[] response = client.UploadValues(url, "POST", new NameValueCollection());
|
|
|
|
String server = System.Text.Encoding.ASCII.GetString(response);
|
|
|
|
return server;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static Res Send<Req, Res>(Req request, string url, string tenant = null) where Req : AppRequestDC where Res : AppResponseDC
|
|
{
|
|
if (tenant != null)
|
|
request.Tenant = tenant;
|
|
|
|
var data = JsonConvert.SerializeObject(request);
|
|
|
|
var response_app8_str = Send(url, data, request.Tenant);
|
|
|
|
if (string.IsNullOrEmpty(response_app8_str))
|
|
return null;
|
|
|
|
return JsonConvert.DeserializeObject<Res>(response_app8_str);
|
|
}
|
|
|
|
public static async Task<Res> SendAsync<Req, Res>(Req request, string url, string tenant, long? useroid = null) where Req : AppRequestDC where Res : AppResponseDC
|
|
{
|
|
request.Tenant = tenant;
|
|
|
|
var data = JsonConvert.SerializeObject(request);
|
|
|
|
var response_app8_str = await SendAsync(url, data, tenant, useroid);
|
|
|
|
if (string.IsNullOrEmpty(response_app8_str))
|
|
return null;
|
|
|
|
return JsonConvert.DeserializeObject<Res>(response_app8_str);
|
|
}
|
|
|
|
private static string Send(string url, string dataString, string tenant)
|
|
{
|
|
string response_app8_str;
|
|
|
|
url += "?tenant=" + tenant;
|
|
|
|
using (WebClient client = new WebClient())
|
|
{
|
|
client.Encoding = Encoding.UTF8;
|
|
|
|
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
|
|
|
|
response_app8_str = client.UploadString(url, "POST", dataString);
|
|
}
|
|
|
|
return response_app8_str;
|
|
}
|
|
|
|
private static async Task<string> SendAsync(string url, string dataString, string tenant, long? useroid = null)
|
|
{
|
|
string response;
|
|
|
|
url += "?tenant=" + tenant;
|
|
|
|
if (useroid.HasValue)
|
|
url += "&user=" + useroid.Value;
|
|
|
|
using (WebClient client = new WebClient())
|
|
{
|
|
client.Encoding = Encoding.UTF8;
|
|
|
|
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
|
|
|
|
response = await client.UploadStringTaskAsync(url, "POST", dataString);
|
|
}
|
|
|
|
return response;
|
|
}
|
|
}
|
|
}
|