private void manager_RFIDRead(object sender, PrinterEventArgs e)
 {
     UpdateProgress("Place card on RFID Reader");
     EnableAbortRetry(true);
     PrintButtonEnable(false);
     UpdateStatusbar("Reading RFID");
 }
 private void manager_RFIDReadSuccess(object sender, PrinterEventArgs e)
 {
     EnableAbortRetry(false);
     PrintButtonEnable(false);
     UpdateProgress("RFID Read OK (please remove)");
     UpdateStatusbar("RFID Read successfully: " + e.Status + " (please remove card from the reader)");
 }
 private void manager_Print(object sender, PrinterEventArgs e)
 {
     UpdateProgress("Printing...");
     UpdateStatusbar("Printing card");
     EnableAbortRetry(true);
     PrintButtonEnable(false);
 }
 private void manager_PrintSuccess(object sender, PrinterEventArgs e)
 {
     EnableAbortRetry(true);
     PrintButtonEnable(false);
     UpdateStatusbar("Printing card completed successfully");
     UpdateProgress("Printed OK");
 }
 private void manager_MagEncodeSuccess(object sender, PrinterEventArgs e)
 {
     EnableAbortRetry(true);
     PrintButtonEnable(false);
     UpdateStatusbar("Magnetic strip encoding completed successfully");
     UpdateProgress("Encoded mag strip");
 }
 private void manager_CardLoadSuccess(object sender, PrinterEventArgs e)
 {
     UpdateStatusbar("Successfully loaded card");
     UpdateProgress("Card loaded");
     EnableAbortRetry(true);
     PrintButtonEnable(false);
 }
 private void manager_CardLoad(object sender, PrinterEventArgs e)
 {
     UpdateStatusbar("Loading card into mechanism");
     UpdateProgress("Loading card...");
     PrintButtonEnable(false);
     EnableAbortRetry(true);
 }
        private void manager_UpdateInfo(object sender, PrinterEventArgs e)
        {
            PrinterInfo info = e.Info;

            _lastInfo = info;
            UpdateInfo(info);
        }
 private void manager_CardRequest(object sender, PrinterEventArgs e)
 {
     ResetCardForm();
     ResetProgress();
     EnableAbortRetry(false);
     PrintButtonEnable(false);
     //UpdateStatusbar("Requesting new cards...");
 }
        private void manager_CardReady(object sender, PrinterEventArgs e)
        {
            UpdateCardDetails(e.Card);
            UpdateStatusbar("New card ready to print: " + e.Card.member_id);
            EnableAbortRetry(true); // abort skips to the next card
            UpdateProgress("Ready to print");

            if (cbUnattended.Checked)
            {
                UpdateStatusbar("Printing automatically (unattended mode)");
                PrintButtonEnable(false);
                manager.RequestPrint();
            }
            else
            {
                PrintButtonEnable(true);
            }
        }
 protected virtual void OnRFIDReadSuccess(PrinterEventArgs e)
 {
     RFIDReadSuccess?.Invoke(this, e);
 }
 protected virtual void OnRFIDReadTimeout(PrinterEventArgs e)
 {
     RFIDReadTimeout?.Invoke(this, e);
 }
 protected virtual void OnPrinterUpdate(PrinterEventArgs e)
 {
     PrinterUpdate?.Invoke(this, e);
 }
 protected virtual void OnCardReady(PrinterEventArgs e)
 {
     CardReady?.Invoke(this, e);
 }
 protected virtual void OnCardLoadFail(PrinterEventArgs e)
 {
     CardLoadFailed?.Invoke(this, e);
 }
 protected virtual void OnMagEncodeSuccess(PrinterEventArgs e)
 {
     MagEncodeSuccess?.Invoke(this, e);
 }
 protected virtual void OnPrintSuccess(PrinterEventArgs e)
 {
     PrintSuccess?.Invoke(this, e);
 }
 protected virtual void OnEnrol(PrinterEventArgs e)
 {
     Enrol?.Invoke(this, e);
 }
 protected virtual void OnRFIDRemoved(PrinterEventArgs e)
 {
     RFIDRemoved?.Invoke(this, e);
 }
 private void manager_Unregistered(object sender, PrinterEventArgs e)
 {
     UpdateStatusbar("Printer Unregistered");
     managerRegistered = false;
     ToggleConnected(false);
 }
 protected virtual void OnEject(PrinterEventArgs e)
 {
     Eject?.Invoke(this, e);
 }
 private void manager_Registered(object sender, PrinterEventArgs e)
 {
     UpdateStatusbar("Printer Registered");
     managerRegistered = true;
     ToggleConnected(true);
 }
 protected virtual void OnPrintFail(PrinterEventArgs e)
 {
     PrintFail?.Invoke(this, e);
 }
 private void manager_RegisterError(object sender, PrinterEventArgs e)
 {
     UpdateStatusbar("Error registering printer: " + e.Status);
     managerRegistered = false;
     ToggleConnected(false);
 }
 protected virtual void OnMagEncodeFail(PrinterEventArgs e)
 {
     MagEncodeFailed?.Invoke(this, e);
 }
 protected virtual void OnAborted(PrinterEventArgs e)
 {
     Aborted?.Invoke(this, e);
 }
 protected virtual void OnCardLoadSuccess(PrinterEventArgs e)
 {
     CardLoadSuccess?.Invoke(this, e);
 }
 protected virtual void OnRegistered(PrinterEventArgs e)
 {
     Registered?.Invoke(this, e);
 }
 protected virtual void OnCardRequest(PrinterEventArgs e)
 {
     CardRequest?.Invoke(this, e);
 }
 protected virtual void OnUnregisterError(PrinterEventArgs e)
 {
     UnregisterError?.Invoke(this, e);
 }