198 lines
4.8 KiB
C#
198 lines
4.8 KiB
C#
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Net;
|
|
|
|
namespace NKC_SDK
|
|
{
|
|
public class NKC
|
|
{
|
|
#region utils comunicazione HTTP
|
|
|
|
|
|
/// <summary>
|
|
/// Effettua chiamata URL e restituisce risultato
|
|
/// </summary>
|
|
/// <param name="URL"></param>
|
|
/// <returns></returns>
|
|
public static string callUrl(string URL)
|
|
{
|
|
string answ = "";
|
|
var client = new WebClientWT();
|
|
//var client = new WebClient();
|
|
client.Headers.Add("user-agent", "NKC_SDK");
|
|
try
|
|
{
|
|
answ = client.DownloadString(URL);
|
|
}
|
|
catch
|
|
{ }
|
|
// restituisco valore!
|
|
return answ;
|
|
}
|
|
/// <summary>
|
|
/// Effettua chiamata URL e restituisce risultato
|
|
/// </summary>
|
|
/// <param name="URL"></param>
|
|
/// <param name="payload"></param>
|
|
/// <returns></returns>
|
|
public static string callUrl(string URL, string payload)
|
|
{
|
|
string answ = "";
|
|
var client = new WebClientWT();
|
|
client.Headers.Add("user-agent", "NKC_SDK");
|
|
try
|
|
{
|
|
answ = client.UploadString(URL, payload);
|
|
}
|
|
catch
|
|
{ }
|
|
// restituisco valore!
|
|
return answ;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Effettua chiamata PUT
|
|
/// </summary>
|
|
/// <param name="URL"></param>
|
|
/// <param name="payload"></param>
|
|
/// <returns></returns>
|
|
public static string putData(string URL, string payload)
|
|
{
|
|
string answ = "";
|
|
var client = new WebClientWT();
|
|
client.Headers.Add("user-agent", "NKC_SDK");
|
|
// importante x evitare errore 415 di dataType non ammesso
|
|
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
|
|
try
|
|
{
|
|
// va messo "PUT" e va configurato IIS per accettare PUT
|
|
answ = client.UploadString(URL, "PUT", payload);
|
|
answ = "ok";
|
|
}
|
|
catch (Exception exc)
|
|
{ }
|
|
// restituisco valore!
|
|
return answ;
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#region URL di base
|
|
|
|
protected string urlCurrBunk
|
|
{
|
|
get
|
|
{
|
|
return $"{_baseUrl}api/Bunk";
|
|
}
|
|
}
|
|
protected string urlGetBunk(int currBunkId)
|
|
{
|
|
return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=false";
|
|
}
|
|
protected string urlNextBunk(int currBunkId)
|
|
{
|
|
return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=true";
|
|
}
|
|
protected string urlPutBunk(int currBunkId)
|
|
{
|
|
return $"{_baseUrl}api/Bunk/{currBunkId}";
|
|
}
|
|
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// URL di base per la comunicazione
|
|
///
|
|
/// PROD: http://seriate.steamware.net:8083/NKC/
|
|
/// DEV: https://localhost:44388/
|
|
/// </summary>
|
|
protected string _baseUrl { get; set; } = @"http://seriate.steamware.net:8083/NKC/";
|
|
|
|
/// <summary>
|
|
/// Classe per effettuare comunicazioni con NKC
|
|
/// </summary>
|
|
/// <param name="baseUrl"></param>
|
|
public NKC(string baseUrl)
|
|
{
|
|
_baseUrl = baseUrl;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera il PRIMO BUNK
|
|
/// - effettua chaimata tramite REST API HTTP
|
|
/// - il risutlato viene deserializzato nell'oggetto richiesto
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public ProdBunk getFirstBunk()
|
|
{
|
|
ProdBunk answ = null;
|
|
// chiamo metodo x recupero WBunk...
|
|
try
|
|
{
|
|
string rawdata = callUrl(urlCurrBunk);
|
|
answ = JsonConvert.DeserializeObject<ProdBunk>(rawdata);
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
/// <summary>
|
|
/// Recupera il BUNK SUCCESSIVO
|
|
/// - effettua chaimata tramite REST API HTTP
|
|
/// - il risutlato viene deserializzato nell'oggetto richiesto
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public ProdBunk getNextBunk(int currBunkId)
|
|
{
|
|
ProdBunk answ = null;
|
|
// chiamo metodo x recupero WBunk...
|
|
try
|
|
{
|
|
string rawdata = callUrl(urlNextBunk(currBunkId));
|
|
answ = JsonConvert.DeserializeObject<ProdBunk>(rawdata);
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
/// <summary>
|
|
/// Recupera UN BUNK esatto
|
|
/// - effettua chaimata tramite REST API HTTP
|
|
/// - il risutlato viene deserializzato nell'oggetto richiesto
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public ProdBunk getBunk(int currBunkId)
|
|
{
|
|
ProdBunk answ = null;
|
|
// chiamo metodo x recupero WBunk...
|
|
try
|
|
{
|
|
string rawdata = callUrl(urlGetBunk(currBunkId));
|
|
answ = JsonConvert.DeserializeObject<ProdBunk>(rawdata);
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
/// <summary>
|
|
/// Effettua salvataggio del BUNK corrente su NKC
|
|
/// </summary>
|
|
/// <param name="currBunk"></param>
|
|
public void saveBunk(ProdBunk currBunk)
|
|
{
|
|
try
|
|
{
|
|
// serializzo oggetto
|
|
string rawdata = JsonConvert.SerializeObject(currBunk);
|
|
// invio con metodo put!
|
|
putData(urlPutBunk(currBunk.BunkId), rawdata);
|
|
}
|
|
catch
|
|
{ }
|
|
|
|
}
|
|
}
|
|
}
|