private static void DisplayPrinterStatusValues(PrinterStatusValues vals)
 {
     Console.WriteLine("Status:");
     Console.WriteLine("  ClientID:      " + vals._clientID);
     Console.WriteLine("  ErrorCode:     " + vals._errorCode);
     Console.WriteLine("  ErrorSeverity: " + vals._errorSeverity);
     Console.WriteLine("  ErrorString:   " + vals._errorString);
     Console.WriteLine("  PrinterData:   " + vals._dataFromPrinter);
     Console.WriteLine("  PrinterJobID:  " + vals._printerJobID);
     Console.WriteLine("  WindowsJobID:  " + vals._windowsJobID);
     Console.WriteLine();
 }
    private static void CardJobWithStatus(
        BidiSplWrap bidiSpl,
        CommandLineOptions commandLineOptions,
        PrinterOptionsValues printerOptionsValues)
    {
        if ("Ready" != printerOptionsValues._printerStatus && "Busy" != printerOptionsValues._printerStatus)
        {
            throw new Exception(
                      commandLineOptions.printerName + " is not ready. status: " + printerOptionsValues._printerStatus);
        }

        int printerJobID = Util.StartJob(
            bidiSpl,
            string.Empty);  // hopperID

        string printerStatusXML = bidiSpl.GetPrinterData(strings.PRINTER_MESSAGES);
        PrinterStatusValues printerStatusValues = Util.ParsePrinterStatusXML(printerStatusXML);

        DisplayPrinterStatusValues(printerStatusValues);

        bidiSpl.SetPrinterData(strings.ENDJOB);

        Util.PollForJobCompletion(bidiSpl, printerJobID);
    }