private bool isDoInMercatorInstanceBusy = false;
private async void Button_Clicked(object sender, EventArgs e)
{
if (isDoInMercatorInstanceBusy)
return;
Button button = (Button)sender;
HistoDescriptor histoDescriptor = (HistoDescriptor)button.CommandParameter;
button.IsEnabled = false;
isDoInMercatorInstanceBusy = true;
DoInMercatorInstanceRequest doInMercatorInstanceRequest = new DoInMercatorInstanceRequest
{
Type = histoDescriptor.Type,
Id = histoDescriptor.Id,
Journal = histoDescriptor.Journal,
Piece = histoDescriptor.Piece
};
MercatorPenguin.DoInMercatorInstanceDescriptor doInMercatorInstanceDescriptor = new MercatorPenguin.DoInMercatorInstanceDescriptor
{
Assembly = "<Other\\TestPenguinCustomServer\\Server\\TestPenguinCustomServer.dll",
ClassName = "TestPenguinCustomServer.TestClass",
MethodName = "DoubleQuantities",
Parameter = Api.JsonConvertSerializeObject(doInMercatorInstanceRequest)
};
activityIndicator.SetActive(true);
var r = await MercatorPenguin.BaseCustomPage.DoInMercatorInstance(doInMercatorInstanceDescriptor);
activityIndicator.SetActive(false);
if (r.Error != null)
{
_ = MercatorPenguin.Dialogs.Stop(this, r.Error);
}
else
{
DoInMercatorInstanceResponse doInMercatorInstanceResponse = Api.JsonConvertDeserializeObject<DoInMercatorInstanceResponse>(r.Result);
if (doInMercatorInstanceResponse.Error != null)
_ = MercatorPenguin.Dialogs.Stop(this, doInMercatorInstanceResponse.Error);
else
_ = MercatorPenguin.Dialogs.Stop(this, doInMercatorInstanceResponse.Result);
}
button.IsEnabled = true;
isDoInMercatorInstanceBusy = false;
}