NAV OnlineInvoices
This commit is contained in:
@@ -0,0 +1,234 @@
|
||||
using DevExpress.Data.Filtering;
|
||||
using DevExpress.ExpressApp.Xpo;
|
||||
using DevExpress.Persistent.Base;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Nuvolar.Module.StaticClass
|
||||
{
|
||||
/// <summary>
|
||||
/// Laravel RestAPI kezelő osztály
|
||||
/// </summary>
|
||||
public static class RestAPI
|
||||
{
|
||||
private static string _UriBase;
|
||||
private static Dictionary<string, string> _LoginInfo;
|
||||
private static int _StatusCode;
|
||||
private static string _StatusMessage;
|
||||
private static string _ResponseMessage;
|
||||
private static string _API_Token;
|
||||
private static string _GeocodeAPIKey;
|
||||
|
||||
public static int StatusCode
|
||||
{
|
||||
get { return _StatusCode; }
|
||||
}
|
||||
public static string StatusMessage
|
||||
{
|
||||
get { return _StatusMessage; }
|
||||
}
|
||||
public static string ResponseMessage
|
||||
{
|
||||
get { return _ResponseMessage; }
|
||||
}
|
||||
public static void Init(XPObjectSpace _onew)
|
||||
{
|
||||
|
||||
_ResponseMessage = "";
|
||||
_UriBase = ConfigurationManager.AppSettings["Uri"];
|
||||
_GeocodeAPIKey = ConfigurationManager.AppSettings["GeocodeAPIKey"];
|
||||
Laravel.Users _Users = _onew.FindObject<Nuvolar.Module.Laravel.Users>(CriteriaOperator.Parse("email='sysadmin@emango.com'"));
|
||||
if (_Users != null)
|
||||
{
|
||||
if (String.IsNullOrEmpty(_Users.api_token))
|
||||
{
|
||||
|
||||
_LoginInfo = new Dictionary<string, string> { { "email", "sysadmin@emango.com" },
|
||||
{ "password", "SysAdmin" }};
|
||||
|
||||
var json = ExecuteRootePOST("login", false, JsonConvert.SerializeObject(_LoginInfo));
|
||||
|
||||
if (_StatusCode == 200)
|
||||
{
|
||||
var dd = JsonConvert.DeserializeObject(json);
|
||||
var dict = JObject.Parse(json).SelectToken("data").ToObject<Dictionary<string, string>>();
|
||||
_API_Token = dict["api_token"];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_API_Token = _Users.api_token;
|
||||
}
|
||||
}
|
||||
}
|
||||
public static string ExecuteRootePOST(string _RooteString, bool _NeedAuthentication, string _postData)
|
||||
{
|
||||
_StatusCode = 500;
|
||||
_StatusMessage = "Not respond";
|
||||
string json = "";
|
||||
|
||||
|
||||
Tracing.Tracer.LogText(_UriBase + _RooteString);
|
||||
|
||||
var _Uri = new Uri(_UriBase + _RooteString, UriKind.Absolute);
|
||||
var _WebRequest = WebRequest.Create(_Uri);
|
||||
HttpWebRequest _HttpWebRequest = (HttpWebRequest)_WebRequest;
|
||||
|
||||
_HttpWebRequest.Method = "POST";
|
||||
byte[] byteArray = Encoding.UTF8.GetBytes(_postData);
|
||||
|
||||
|
||||
if (_NeedAuthentication)
|
||||
{
|
||||
_HttpWebRequest.PreAuthenticate = true;
|
||||
_HttpWebRequest.Headers.Add("Authorization", "Bearer " + _API_Token);
|
||||
_HttpWebRequest.Headers.Add("cdb", GeneralFunction.GLOBAL_SQLDatabase);
|
||||
}
|
||||
|
||||
_HttpWebRequest.ContentType = "application/json";
|
||||
_HttpWebRequest.Accept = "application/json";
|
||||
_HttpWebRequest.ContentLength = byteArray.Length;
|
||||
Stream _dataStream = _HttpWebRequest.GetRequestStream();
|
||||
_dataStream.Write(byteArray, 0, byteArray.Length);
|
||||
_dataStream.Close();
|
||||
|
||||
try
|
||||
{
|
||||
WebResponse _WebResponse = _WebRequest.GetResponse();
|
||||
_StatusCode = (int)((HttpWebResponse)_WebResponse).StatusCode;
|
||||
_StatusMessage = ((HttpWebResponse)_WebResponse).StatusDescription;
|
||||
var _responseStream = _WebResponse.GetResponseStream();
|
||||
if (_responseStream == null) return json;
|
||||
|
||||
var _StreamReader = new StreamReader(_responseStream, Encoding.Default);
|
||||
json = _StreamReader.ReadToEnd();
|
||||
|
||||
try
|
||||
{
|
||||
_StatusMessage = JsonConvert.DeserializeObject(json).ToString();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
_responseStream.Close();
|
||||
_WebResponse.Close();
|
||||
}
|
||||
catch (WebException ex)
|
||||
{
|
||||
|
||||
if (ex.Status == WebExceptionStatus.ProtocolError)
|
||||
{
|
||||
var _WebResponse = (HttpWebResponse)ex.Response;
|
||||
_StatusCode = (int)_WebResponse.StatusCode;
|
||||
_StatusMessage = ((HttpWebResponse)_WebResponse).StatusDescription;
|
||||
}
|
||||
}
|
||||
|
||||
return json;
|
||||
|
||||
}
|
||||
public static string ExecuteRooteGET(string _RooteString, bool _NeedAuthentication)
|
||||
{
|
||||
string json = "";
|
||||
|
||||
Tracing.Tracer.LogText(_UriBase + _RooteString);
|
||||
|
||||
var _Uri = new Uri(_UriBase + _RooteString, UriKind.Absolute);
|
||||
var _WebRequest = WebRequest.Create(_Uri);
|
||||
_WebRequest.Method = "GET";
|
||||
|
||||
|
||||
HttpWebRequest _HttpWebRequest = (HttpWebRequest)_WebRequest;
|
||||
if (_NeedAuthentication)
|
||||
{
|
||||
_HttpWebRequest.PreAuthenticate = true;
|
||||
_HttpWebRequest.Headers.Add("Authorization", "Bearer " + _API_Token);
|
||||
_HttpWebRequest.Headers.Add("cdb", GeneralFunction.GLOBAL_SQLDatabase);
|
||||
}
|
||||
|
||||
_HttpWebRequest.Accept = "application/json";
|
||||
_HttpWebRequest.ContentType = "application/json";
|
||||
|
||||
try
|
||||
{
|
||||
WebResponse _WebResponse = _WebRequest.GetResponse();
|
||||
_StatusCode = (int)((HttpWebResponse)_WebResponse).StatusCode;
|
||||
Stream _responseStream = _WebResponse.GetResponseStream();
|
||||
if (_responseStream == null) return json;
|
||||
|
||||
StreamReader _StreamReader = new StreamReader(_responseStream, Encoding.Default);
|
||||
json = _StreamReader.ReadToEnd();
|
||||
|
||||
_responseStream.Close();
|
||||
_WebResponse.Close();
|
||||
}
|
||||
catch (WebException ex)
|
||||
{
|
||||
|
||||
if (ex.Status == WebExceptionStatus.ProtocolError)
|
||||
{
|
||||
var _WebResponse = (HttpWebResponse)ex.Response;
|
||||
_StatusCode = (int)_WebResponse.StatusCode;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return json;
|
||||
}
|
||||
public static string ExecuteGOOGLEMAPSGET(string _RouteString)
|
||||
{
|
||||
string json = "";
|
||||
|
||||
Tracing.Tracer.LogText(_UriBase + _RouteString);
|
||||
|
||||
|
||||
var _Uri = new Uri("https://maps.googleapis.com/maps/api/geocode/json?address=" + _RouteString + "&key=" + _GeocodeAPIKey, UriKind.Absolute);
|
||||
var _WebRequest = WebRequest.Create(_Uri);
|
||||
_WebRequest.Method = "GET";
|
||||
|
||||
|
||||
HttpWebRequest _HttpWebRequest = (HttpWebRequest)_WebRequest;
|
||||
|
||||
_HttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8";
|
||||
_HttpWebRequest.ContentType = "application/json";
|
||||
_HttpWebRequest.Headers.Add("accept-language", "hu-HU,hu;q=0.9,en-US;q=0.8,en;q=0.7,pt;q=0.6");
|
||||
|
||||
try
|
||||
{
|
||||
WebResponse _WebResponse = _WebRequest.GetResponse();
|
||||
_StatusCode = (int)((HttpWebResponse)_WebResponse).StatusCode;
|
||||
Stream _responseStream = _WebResponse.GetResponseStream();
|
||||
if (_responseStream == null) return json;
|
||||
|
||||
StreamReader _StreamReader = new StreamReader(_responseStream, Encoding.Default);
|
||||
json = _StreamReader.ReadToEnd();
|
||||
|
||||
_responseStream.Close();
|
||||
_WebResponse.Close();
|
||||
}
|
||||
catch (WebException ex)
|
||||
{
|
||||
|
||||
if (ex.Status == WebExceptionStatus.ProtocolError)
|
||||
{
|
||||
var _WebResponse = (HttpWebResponse)ex.Response;
|
||||
_StatusCode = (int)_WebResponse.StatusCode;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return json;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user