public XmlDocument CheckPassHolderData(string surname, string forename, string dateOfBirth, string postcode, string ISRN) { if (log.IsInfoEnabled) { log.Info("Request to search CT Data received."); } logParams(ISRN, surname, forename, postcode, dateOfBirth); if (log.IsDebugEnabled) { log.Debug("Initialising Response document."); } XmlDocument response = new XmlDocument(); response.Load(appDataPath + "CTSelfPassSearchResponse.xml"); if (log.IsDebugEnabled) { log.Debug("Response document loaded."); } if (String.IsNullOrEmpty(ISRN) || String.IsNullOrEmpty(surname) || String.IsNullOrEmpty(postcode)) { return(response); } if (ISRN.Length != 18) { return(response); } if (log.IsDebugEnabled) { log.Debug("Initialising connection to CT Data Layer."); } //dataLayer = new CT_DataLayer(); //if (log.IsDebugEnabled) log.Debug("Data Layer initialised."); CT_DataLayerSoapClient client = new CT_DataLayerSoapClient(); CTPassHolder[] results = client.SearchData(surname, postcode, ISRN, false); if (log.IsDebugEnabled) { log.Debug("Adding original search criteria to response"); } response.SelectSingleNode("/result/searchISRN").InnerText = ISRN; response.SelectSingleNode("/result/searchSurname").InnerText = surname; response.SelectSingleNode("/result/searchPostcode").InnerText = postcode; if (results.Length > 1) { if (log.IsErrorEnabled) { log.Error("Multiple results found for criteria."); log.Error("ISRN [" + ISRN + "]"); log.Error("Surname [" + surname + "]"); log.Error("PostCode [" + postcode + "]"); log.Error("Returning empty result."); } return(response); } if (results.Length < 1) { if (log.IsInfoEnabled) { log.Info("No Results found for search criteria."); } if (log.IsDebugEnabled) { log.Debug("ISRN:[" + ISRN + "]"); log.Debug("Surname:[" + surname + "]"); log.Debug("PostCode:[" + postcode + "]"); } if (log.IsInfoEnabled) { log.Info("Returning empty result."); } return(response); } response.SelectSingleNode("/result/recordId").InnerText = results[0].RecordID.ToString(); response.SelectSingleNode("/result/foreName").InnerText = results[0].FirstNameOrInitial; response.SelectSingleNode("/result/title").InnerText = results[0].Title; if (results[0].DateOfBirth.HasValue) { response.SelectSingleNode("/result/dob").InnerText = results[0].DateOfBirth.Value.ToShortDateString(); } switch (results[0].CtPass.PassType) { case CTPassType.Disabled: response.SelectSingleNode("/result/passType").InnerText = "Disabled"; response.SelectSingleNode("/result/disabledPassType").InnerText = "Permanent"; break; case CTPassType.DisabledTemporary: response.SelectSingleNode("/result/passType").InnerText = "Disabled"; response.SelectSingleNode("/result/disabledPassType").InnerText = "Temporary"; break; default: response.SelectSingleNode("/result/passType").InnerText = "Age"; break; } if (results[0].DisabilityCategory != '\0') { response.SelectSingleNode("/result/disabilityCategory").InnerText = results[0].DisabilityCategory.ToString(); } response.SelectSingleNode("/result/expiryDate").InnerText = results[0].CtPass.ExpiryDate.ToShortDateString(); response.SelectSingleNode("/result/gender").InnerText = results[0].Gender; if (results[0].PhotographBytes.Length > 3) { response.SelectSingleNode("/result/hasPhoto").InnerText = "true"; } response.SelectSingleNode("/result/resultsFound").InnerText = results.Length.ToString(); /* * <result> * <recordId /> * <fullName /> * <dob /> * <passType /> * <disabledPassType /> * <disabilityCategory /> * <expiryDate /> * <searchISRN /> * <searchSurname /> * <searchPostcode /> * </result> */ if (log.IsInfoEnabled) { log.Info("Returning response."); } return(response); }
public XmlDocument UpdateAndRenewPass(int RecordId, string Title, string ForeName, string Gender, string DateOfBirth, string DisabilityCategory, int caseNumber) { if (log.IsInfoEnabled) { log.Info("Request to renew pass received for RecordID [" + RecordId + "]*"); } logParams(RecordId, Title, ForeName, DateOfBirth, DisabilityCategory, caseNumber); if (log.IsDebugEnabled) { log.Debug("Gender:" + Gender); } if (log.IsDebugEnabled) { log.Debug("Initialising response document."); } XmlDocument response = new XmlDocument(); if (log.IsDebugEnabled) { log.Debug("Response document initialised."); } if (log.IsDebugEnabled) { log.Debug("Initialising connection to the data layer"); } CT_DataLayerSoapClient dataLayer = new CT_DataLayerSoapClient(); if (log.IsDebugEnabled) { log.Debug("Data Layer initialised."); } if (log.IsDebugEnabled) { log.Debug("Retrieving existing record By ID."); } CTPassHolder existingPassHolderRecord = dataLayer.RetrieveDataByID(RecordId); if (log.IsDebugEnabled) { log.Debug("Passholder retrieved. Updating record."); } try { if (existingPassHolderRecord.Title != Title) { existingPassHolderRecord.Title = Title; } if (existingPassHolderRecord.FirstNameOrInitial.Length <= 1) { existingPassHolderRecord.FirstNameOrInitial = ForeName; } if (log.IsDebugEnabled) { log.Debug("Passholder Gender before tampering:" + existingPassHolderRecord.Gender); } if (existingPassHolderRecord.Gender != Gender) { existingPassHolderRecord.Gender = Gender; } if (existingPassHolderRecord.DateOfBirth != DateTime.Parse(DateOfBirth)) { existingPassHolderRecord.DateOfBirth = DateTime.Parse(DateOfBirth); } if (DisabilityCategory != String.Empty) { existingPassHolderRecord.DisabilityCategory = DisabilityCategory[0]; } existingPassHolderRecord.CtPass.ExpiryDate = calculateNewExpiryDate(existingPassHolderRecord.CtPass.PassType, DateOfBirth, String.Empty); if (log.IsDebugEnabled) { log.Debug("Pass Holder Record updated. Saving to Data Layer."); } } catch (Exception ex) { if (log.IsErrorEnabled) { log.Error("Error updating existing pass record for recordID [" + RecordId + "]"); } if (log.IsErrorEnabled) { log.Error(ex.Message); } response.LoadXml("<result>Fail</result>"); return(response); } if (log.IsDebugEnabled) { log.Debug("Existing Gender:" + existingPassHolderRecord.Gender); } dataLayer.UpdateAndRenewPass(existingPassHolderRecord, caseNumber); if (log.IsInfoEnabled) { log.Info("Pass renew request processed. Returning response."); } response.LoadXml("<result>Success</result>"); return(response); }