public bool QRImageLoaded(SingleFieldRequest <string> request)
        {
            var task = LogableTask.NewTask("QRImageLoaded");

            try
            {
                ShowTimeOut = false;

                task.Log(MethodBase.GetCurrentMethod(), TraceLevel.Info, "received request");

                ServerHelper.GetResponse <string>("MobileCash/" + MethodBase.GetCurrentMethod().Name, request, false);
                var startTimeSpan  = TimeSpan.Zero;
                var periodTimeSpan = TimeSpan.FromSeconds(3);

                this.FindTrx = new System.Threading.Timer((e) =>
                {
                    if (this.ElapsedDisplayTime > this.TotalQRCodeDisplayTime)
                    {
                        this.FindTrx.Dispose();
                        //navigate to error
                    }
                    else
                    {
                        StagedTrxDetails getQRTrxDetails = this.GetQRTrxDetails(new SingleFieldRequest <string>
                        {
                            Data = request.Data
                        });

                        if (getQRTrxDetails.TrxFound)
                        {
                            Console.WriteLine(getQRTrxDetails.TrxFound);
                            this.Amount = getQRTrxDetails.Amount;
                            this.RefNo  = getQRTrxDetails.refNo;


                            navigationManager.NavigateTo(STCPayUrls.ShowTrxDetailsPageUrl);

                            this.FindTrx.Dispose();
                        }

                        else
                        {
                            this.ElapsedDisplayTime = this.ElapsedDisplayTime + 3;
                        }
                    }
                }
                                                          , null, startTimeSpan, periodTimeSpan);

                return(true);
            }
            catch (Exception ex)
            {
                task.Log(MethodBase.GetCurrentMethod(), TraceLevel.Error, ex);
                return(false);
            }
            finally
            { task.EndTask(); }
        }
        public bool SendingDispenseReq([FromBody] SingleFieldRequest <string> request)
        {
            var task = LogableTask.NewTask("SendingDispenseReq");

            try
            {
                task.Log(MethodBase.GetCurrentMethod(), TraceLevel.Info, "received request");

                ServerHelper.GetResponse <string>("MobileCash/" + MethodBase.GetCurrentMethod().Name, request, false);
                return(true);
            }
            catch (Exception ex)
            {
                task.Log(MethodBase.GetCurrentMethod(), TraceLevel.Error, ex);
                return(false);
            }
            finally
            { task.EndTask(); }
        }
        public StagedTrxDetails GetQRTrxDetails(SingleFieldRequest <string> qrCodeSeqNoReq)
        {
            var task = LogableTask.NewTask("GetQRTrxDetails");

            try
            {
                task.Log(MethodBase.GetCurrentMethod(), TraceLevel.Info, "received request");

                var trxDetails = ServerHelper.GetResponse <StagedTrxDetails>("MobileCash/" + MethodBase.GetCurrentMethod().Name,
                                                                             new SingleFieldRequest <string> {
                    Data = qrCodeSeqNoReq.Data
                }, false);

                if (trxDetails.Success && trxDetails.Data.HasError == false)
                {
                    if (trxDetails.Data.TrxFound)
                    {
                        UserSession.CurrentSession.QRCodeSeqNo = trxDetails.Data.SeqNo;
                    }

                    return(trxDetails.Data);
                }
                else
                {
                    return new StagedTrxDetails
                           {
                               TrxFound = false
                           }
                };
            }
            catch (Exception ex)
            {
                task.Log(MethodBase.GetCurrentMethod(), TraceLevel.Error, ex);
                return(new StagedTrxDetails
                {
                    TrxFound = false
                });
            }

            finally
            { task.EndTask(); }
        }