// async function here //async
        private void PayBooking(double val)
        {
            string data = "1";// await Task.Run(() => Execute_PayBooking(this));

            if (data == "1")
            {
                JArray value = JArray.Parse(BusinessCommands.getExchangeList());
                for (int i = 0; i < value.Count; i++)
                {
                    if ((string)value[i]["currency"] == GetCurrency())
                    {
                        rate = (double)value[i]["rate"];

                        //Console.WriteLine(value[i]["rate"]);
                        break;
                    }
                }
                gridnewresult.Visibility = Visibility.Visible;
                lblHold.Content          = val;
                lblRecived.Content       = GetCurrency();
                lblRecived_Copy1.Content = GetCurrency();
                lblRecived_Copy2.Content = GetCurrency();
                txtCashRequired.Text     = (Math.Round((val * rate), 2)).ToString();
                txtChangeAmt.Text        = "0.00";
                btnReceive.IsEnabled     = false;

                txtCashRecived.Text = "";
                txtCashRecived.Focus(); //focus on cash recieved
                //txtnewresult.Content = "IR ID Registered";
                //reset();
            }
        }
        private string GetIRBooking(string ir)
        {
            if (ir.Count() == 8)
            {
                //Call GetBooking
                string data = BusinessCommands.getPastBookings(ir);
                data = Regex.Replace(data, @"\t|\n|\r", "");
                // Regex above had to be added since the JSON returned also had 'noise'

                if (data != "[]")
                {
                    JArray irdetailitem = JArray.Parse(data);
                    lbltitle.Content     = irdetailitem[0]["title"].ToString();;
                    lblBookingID.Content = irdetailitem[0]["BookingID"].ToString();
                }
                else
                {
                    lbltitle.Content     = V;
                    lblBookingID.Content = V;
                }

                return(data);
            }
            return("");
        }
        internal string Execute_PayBooking(MainWindow gui)
        {
            gui.Loading();

            // string ir, string currency, string payment, string reference, string behalf, string barcode, string feeid, string eventid, string time, string registrar
            // Unsure on what parameter names refer to
            return(BusinessCommands.PayBooking(gui.txtRegIRID.Text,
                                               gui.GetCurrency(),
                                               gui.GetPayMode(),
                                               gui.txtPayReference.Text,
                                               gui.txtNotes.Text,
                                               gui.txtScan.Text,
                                               gui.cbxPackage.SelectedValue.ToString(),
                                               null, //Send Null
                                               gui.lblTime.Content.ToString(),
                                               gui.registrar.Content.ToString()));
        }
        /// <summary>
        /// Checkin Tab Button
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (lblBookingID.Content.ToString() == V)
            {
                MessageBox.Show("Cannot Proceed without a VALID Booking.", "VEINS", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }
            if (mycard.connectCard())
            {
                //read the card UID
                string cardUID = mycard.getcardUID();
                txtrfid.Text = cardUID;                                          //displaying on RFID Field

                mycard.submitText(txtirid.Text, "5");                            // 5 - is the block we are writing data on the card

                mycard.submitText("_DTCM_", "8");                                // DTCM
                mycard.submitText(atsCryptography.EncryptIt(txtirid.Text), "6"); //Encrypted

                if (txtrfid.Text.Trim().Length == 0 || txtirid.Text.Trim().Length == 0)
                {
                    MessageBox.Show("Cannot have blank IRID or RFID", "VEINS", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                else
                {
                    txtrfid.Text = txtrfid.Text + mycard.verifyCard("5");
                }

                //TO DO FILE CSV ADD
                string txt = txtirid.Text + ","
                             + lblBookingID.Content + "," + txtirid_Copy.Text + "," + txtrfid.Text;

                File.AppendAllText(file, txt + Environment.NewLine);

                //Proceed with Checkin
                MessageBox.Show(BusinessCommands.CheckInWizard(txtrfid.Text, lblBookingID.Content.ToString(),
                                                               txtirid.Text, txtirid_Copy.Text, txtirid_Copy1.Text, registrar.Content.ToString()));
            }
            else
            {
                txtrfid.Text = "INVALID";
                MessageBox.Show("Reader not Present. Please check reader", "VEINS", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void tabNewRegistration_GotFocus(object sender, RoutedEventArgs e)
        {
            if (canAdd)
            {
                cbxPackage.Items.Clear();
                JArray value = JArray.Parse(BusinessCommands.getFeeList());
                cbxPackage.SelectedValuePath = "Value";
                cbxPackage.DisplayMemberPath = "Key";

                for (int i = 0; i < value.Count(); i++)
                {
                    cbxPackage.Items.Add(new KeyValuePair <string, string>((string)value[i]["FeeName"], (string)value[i]["FeePrice"]));
                }

                canAdd = false;
            }
            //reset the clock
            time = 0;
        }
 internal string Execute_Login(MainWindow gui, string txtusername, string PasswordBox)
 {
     gui.Loading();
     return(BusinessCommands.CheckLogin(txtusername, PasswordBox));
 }
 internal string Execute_getIRDetails(MainWindow gui, string ir)
 {
     //load the gui
     gui.Loading();
     return(BusinessCommands.getIR(ir));
 }