示例#1
0
        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);
        }
示例#2
0
        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);
        }