86 lines
2.8 KiB
C#
86 lines
2.8 KiB
C#
using Python.Runtime;
|
|
using System.Text.Json;
|
|
|
|
namespace dopt.DeltaBarth
|
|
{
|
|
public class Plugin : SharpPython.BasePlugin
|
|
{
|
|
protected dynamic pyModManagement;
|
|
protected dynamic pyModPipeline;
|
|
public Plugin(string runtimePath) : base(runtimePath: runtimePath, verbose: false)
|
|
{
|
|
base.Initialise();
|
|
using (Py.GIL())
|
|
{
|
|
pyModManagement = Py.Import("delta_barth.management");
|
|
pyModPipeline = Py.Import("delta_barth.pipelines");
|
|
}
|
|
}
|
|
public void Startup(string basisApiUrl, string nutzername, string passwort, string datenbank, string mandant)
|
|
{
|
|
AssertNotDisposed();
|
|
SetzeBasisApiUrl(basisApiUrl);
|
|
SetzeNutzerdaten(nutzername, passwort, datenbank, mandant);
|
|
}
|
|
public void SetzeBasisApiUrl(string basisApiUrl)
|
|
{
|
|
AssertNotDisposed();
|
|
pyModManagement.set_base_url(basisApiUrl);
|
|
}
|
|
public void SetzeNutzerdaten(string nutzername, string passwort, string datenbank, string mandant)
|
|
{
|
|
AssertNotDisposed();
|
|
using (Py.GIL()) {
|
|
pyModManagement.set_credentials(nutzername, passwort, datenbank, mandant);
|
|
}
|
|
}
|
|
public DataObjects.UmsatzPrognoseAusgabe UmsatzprognoseDummy(int? firmaId, DateTime? buchungsDatum)
|
|
{
|
|
AssertNotDisposed();
|
|
string pyJson;
|
|
using (Py.GIL())
|
|
{
|
|
pyJson = pyModPipeline.pipeline_sales_forecast_dummy(firmaId, buchungsDatum);
|
|
}
|
|
var parsed = JsonSerializer.Deserialize<DataObjects.UmsatzPrognoseAusgabe>(pyJson);
|
|
|
|
return parsed;
|
|
}
|
|
public DataObjects.UmsatzPrognoseAusgabe Umsatzprognose(int? firmaId, DateTime? buchungsDatum)
|
|
{
|
|
AssertNotDisposed();
|
|
string pyJson;
|
|
using (Py.GIL())
|
|
{
|
|
pyJson = pyModPipeline.pipeline_sales_forecast(firmaId, buchungsDatum);
|
|
}
|
|
var parsed = JsonSerializer.Deserialize<DataObjects.UmsatzPrognoseAusgabe>(pyJson);
|
|
|
|
return parsed;
|
|
}
|
|
protected string GetBaseApiUrl()
|
|
{
|
|
AssertNotDisposed();
|
|
string pyJson;
|
|
using (Py.GIL())
|
|
{
|
|
pyJson = (string)pyModManagement.get_base_url();
|
|
}
|
|
return pyJson;
|
|
}
|
|
protected DataObjects.Credentials GetCredentials()
|
|
{
|
|
AssertNotDisposed();
|
|
string pyJson;
|
|
using (Py.GIL())
|
|
{
|
|
pyJson = (string)pyModManagement.get_credentials();
|
|
}
|
|
|
|
DataObjects.Credentials credentials = JsonSerializer.Deserialize<DataObjects.Credentials>(pyJson);
|
|
|
|
return credentials;
|
|
}
|
|
}
|
|
}
|