private void ProcessBuffer(string buffer) { try { int start = buffer.IndexOf("-") + 1; int end = buffer.LastIndexOf("-"); string certificateNo = string.Empty; string pid = string.Empty; Person = null; if (start == end) MessageBox.Show("This is not a valid certificate!!"); else certificateNo = buffer.Substring(start, end - start); //MessageBox.Show(string.Format("Certification Number : {0}", certificateNo)); if (!string.IsNullOrEmpty(certificateNo)) { GetPerson gp = new GetPerson(); pid = gp.SearchPersonByCertificate(certificateNo); if (!String.IsNullOrEmpty(pid)) { // Set Text by Thread Thread thread = new Thread(new ThreadStart(delegate() { DispatcherOperation dispatcherOp = txtLastName.Dispatcher.BeginInvoke( DispatcherPriority.Normal, new Action( delegate() { SetPerson(false, pid); if (Person != null) FillPersonInformation(); else MessageBox.Show(string.Format("Record Not Found - Certification Number : {0}", certificateNo)); } )); // dispatcherOp.Completed += new EventHandler(dispatcherOp_Completed); } )); thread.Start(); } } else { MessageBox.Show(string.Format("Record Not Found - Certification Number : {0}", certificateNo)); } } catch { MessageBox.Show("Serial No is Invalid"); } }
// Serch the person data and set Person property and return bool isExist private bool SetPerson(bool isExist, string pid) { // Check the local database GetPerson gp = new GetPerson(); Person = gp.SearchPersonByPID(pid); isExist = false; if (Person != null) { isFromLocalDB = true; isExist = GetDataFromXML(isExist, pid); if (!isExist) isExist = true; } else { isExist = GetDataFromXML(isExist, pid); } return isExist; }