public async Task DisplayControlPanel(ControlPanelType option, ReceiptCutModeType cutMode, ReceiptPrintModeType printMode) { try { await _eft.WriteRequestAsync(new EFTControlPanelRequest() { ControlPanelType = option, ReceiptCutMode = cutMode, ReceiptPrintMode = printMode, ReturnType = ControlPanelReturnType.Immediately }); bool waiting = true; do { var timeoutToken = new CancellationTokenSource(new TimeSpan(0, 5, 0)).Token; // 5 minute timeout var r = await _eft.ReadResponseAsync(timeoutToken); if (r is EFTDisplayResponse) { if (_data.Settings.DemoDialogOption != DemoDialogMode.Hide) { EFTDisplayResponse res = r as EFTDisplayResponse; _data.DisplayDetails = res; _data.DisplayDialog(true); } } else if (r is EFTReceiptResponse || r is EFTReprintReceiptResponse) { string[] receiptText = (r is EFTReceiptResponse) ? (r as EFTReceiptResponse).ReceiptText : (r as EFTReprintReceiptResponse).ReceiptText; StringBuilder receipt = new StringBuilder(); foreach (var s in receiptText) { if (s.Length > 0) { receipt.AppendLine(s); } } if (!string.IsNullOrEmpty(receipt.ToString())) { _data.Receipt = receipt.ToString(); } } else { _data.LastTxnResult = DictionaryFromType(r); _data.DisplayDialog(false); } }while (waiting); } catch (Exception ex) { ShowError(ex.HResult.ToString(), ex.Message); } }
private void ChangePanel(ControlPanelType type) { _initializationPanel.SetActive(type == ControlPanelType.Initialization); _processPanel.SetActive(type == ControlPanelType.processing); _hideInvisibleMatchButtonText.text = ShowInvisibleMatchButtonText; }