Get the Print Job Status which is pushed to the printer very recently

I am trying to fetch the print job status which is pushed to the printer queue very recently using c#. I could see that PrintJobInfoCollection class checks the status for all the print jobs present in the Printer spool folder.

For eg, there is a job identifier '17' pushed at 10 AM & an another job identifier '18' pushed at 10.15 AM. I would like to have a code which will check the job status for the identifier 18 alone.

I am using the below code now to check the print jobs status.

private void GetJobStatus()
        {
            string jobStatus = string.Empty;
            try
            {
                PrintQueue PDFprinterQueue = printServerJob.GetPrintQueue(_selectedPrinter);
                PrintJobInfoCollection pjc = PDFprinterQueue.GetPrintJobInfoCollection();
                foreach (var job in pjc)
                {
                    switch (job.JobStatus)
                    {
                        case PrintJobStatus.Paused:
                            jobStatus = "JOB_STATUS_PAUSED";
                            break;
                        case PrintJobStatus.Error:
                            jobStatus = "JOB_STATUS_ERROR";
                            break;
                        case PrintJobStatus.Deleting:
                            jobStatus = "JOB_STATUS_DELETING";
                            break;
                        case PrintJobStatus.Spooling:
                            jobStatus = "JOB_STATUS_SPOOLING";
                            break;
                        case PrintJobStatus.Printing:
                            jobStatus = "JOB_STATUS_PRINTING";
                            break;
                        case PrintJobStatus.Offline:
                            jobStatus = "JOB_STATUS_OFFLINE";
                            break;
                        case PrintJobStatus.PaperOut:
                            jobStatus = "JOB_STATUS_PAPEROUT";
                            break;
                        case PrintJobStatus.Printed:
                            jobStatus = "JOB_STATUS_PRINTED";
                            break;
                        case PrintJobStatus.Deleted:
                            jobStatus = "JOB_STATUS_DELETED";
                            break;
                        case PrintJobStatus.Blocked:
                            jobStatus = "JOB_STATUS_BLOCKED";
                            break;
                        case PrintJobStatus.UserIntervention:
                            jobStatus = "JOB_STATUS_USERINTERVENTION";
                            break;
                        case PrintJobStatus.Restarted:
                            jobStatus = "JOB_STATUS_RESTARTED";
                            break;
                        case PrintJobStatus.Completed:
                            jobStatus = "JOB_STATUS_COMPLETED";
                            break;
                        case PrintJobStatus.Retained:
                            jobStatus = "JOB_STATUS_RETAINED";
                            break;
                    }
                    if (string.IsNullOrEmpty(jobStatus))
                    {
                        // Assuming everything is good:-)
                        jobStatus = "GOOD";
                    }
                }
            }
            catch (InvalidPrinterException invptrexp)
            {
                jobStatus = "JOB_STATUS_ERROR";
            }
            finally
            {
                if (printServer != null) printServer.Dispose();
            }
        }

Any suggestion will be highly helpful. Thanks in advance.