Ejemplo n.º 1
0
 public Dictionary <string, object> MapCandidateDictionary(Candidate candidate)
 {
     return(new Dictionary <string, object>
     {
         { "CandidateId", candidate.CandidateId },
         { "PersonId", candidate.PersonId },
         { "CandidateStatusTypeId", candidate.CandidateStatusTypeId },
         { "DateofBirth", candidate.DateofBirth },
         { "AddressLine1", candidate.AddressLine1 },
         { "AddressLine2", candidate.AddressLine2 },
         { "AddressLine3", candidate.AddressLine3 },
         { "AddressLine4", candidate.AddressLine4 },
         { "AddressLine5", candidate.AddressLine5 },
         { "Town", candidate.Town },
         { "CountyId", candidate.CountyId },
         { "Postcode", candidate.Postcode },
         { "LocalAuthorityId", candidate.LocalAuthorityId },
         { "Longitude", candidate.Longitude },
         { "Latitude", candidate.Latitude },
         { "GeocodeEasting", candidate.GeocodeEasting },
         { "GeocodeNorthing", candidate.GeocodeNorthing },
         { "NiReference", candidate.NiReference },
         { "VoucherReferenceNumber", candidate.VoucherReferenceNumber },
         { "UniqueLearnerNumber", candidate.UniqueLearnerNumber },
         { "UlnStatusId", candidate.UlnStatusId },
         { "Gender", candidate.Gender },
         { "EthnicOrigin", candidate.EthnicOrigin },
         { "EthnicOriginOther", candidate.EthnicOriginOther },
         { "ApplicationLimitEnforced", candidate.ApplicationLimitEnforced },
         { "LastAccessedDate", candidate.LastAccessedDate },
         { "AdditionalEmail", candidate.AdditionalEmail },
         { "Disability", candidate.Disability },
         { "DisabilityOther", candidate.DisabilityOther },
         { "HealthProblems", candidate.HealthProblems },
         { "ReceivePushedContent", candidate.ReceivePushedContent },
         { "ReferralAgent", candidate.ReferralAgent },
         { "DisableAlerts", candidate.DisableAlerts },
         { "UnconfirmedEmailAddress", candidate.UnconfirmedEmailAddress },
         { "MobileNumberUnconfirmed", candidate.MobileNumberUnconfirmed },
         { "DoBFailureCount", candidate.DoBFailureCount },
         { "ForgottenUsernameRequested", candidate.ForgottenUsernameRequested },
         { "ForgottenPasswordRequested", candidate.ForgottenPasswordRequested },
         { "TextFailureCount", candidate.TextFailureCount },
         { "EmailFailureCount", candidate.EmailFailureCount },
         { "LastAccessedManageApplications", candidate.LastAccessedManageApplications },
         { "ReferralPoints", candidate.ReferralPoints },
         { "BeingSupportedBy", candidate.BeingSupportedBy },
         { "LockedForSupportUntil", candidate.LockedForSupportUntil },
         { "NewVacancyAlertEmail", candidate.NewVacancyAlertEmail },
         { "NewVacancyAlertSMS", candidate.NewVacancyAlertSMS },
         { "AllowMarketingMessages", candidate.AllowMarketingMessages },
         { "ReminderMessageSent", candidate.ReminderMessageSent },
         { "CandidateGuid", candidate.CandidateGuid }
     });
 }
Ejemplo n.º 2
0
        public CandidatePerson MapCandidatePerson(CandidateUser candidateUser, IDictionary <Guid, CandidateSummary> candidateSummaries, IDictionary <string, int> vacancyLocalAuthorities, IDictionary <int, int> localAuthorityCountyIds, IDictionary <int, int> schoolAttendedIds, bool anonymise)
        {
            try
            {
                var candidateGuid         = candidateUser.Candidate.Id;
                var candidateSummary      = candidateSummaries.ContainsKey(candidateGuid) ? candidateSummaries[candidateGuid] : new CandidateSummary();
                var candidateId           = GetCandidateId(candidateUser, candidateSummary);
                var address               = candidateUser.Candidate.RegistrationDetails.Address;
                var email                 = candidateUser.Candidate.RegistrationDetails.EmailAddress.ToLower();
                var monitoringInformation = candidateUser.Candidate.MonitoringInformation ?? new MonitoringInformation();

                //TODO: Use PCA to validate these lookups when the service is complete and we have the keys
                var localAuthorityId = GetLocalAuthorityId(address.Postcode, vacancyLocalAuthorities);
                var countyId         = localAuthorityCountyIds.ContainsKey(localAuthorityId) ? localAuthorityCountyIds[localAuthorityId] : 0;

                var candidate = new Candidate
                {
                    CandidateId           = candidateId,
                    PersonId              = candidateSummary.PersonId,
                    CandidateStatusTypeId = GetCandidateStatusTypeId(candidateUser),
                    DateofBirth           = candidateUser.Candidate.RegistrationDetails.DateOfBirth,
                    AddressLine1          = anonymise ? "" : address.AddressLine1,
                    AddressLine2          = address.AddressLine2 ?? "",
                    AddressLine3          = address.AddressLine3 ?? "",
                    AddressLine4          = address.AddressLine4 ?? "",
                    AddressLine5          = "",
                    Town                           = "N/A",
                    CountyId                       = countyId,
                    Postcode                       = address.Postcode,
                    LocalAuthorityId               = localAuthorityId,
                    Longitude                      = null,
                    Latitude                       = null,
                    GeocodeEasting                 = null,
                    GeocodeNorthing                = null,
                    NiReference                    = "",
                    VoucherReferenceNumber         = null,
                    UniqueLearnerNumber            = null,
                    UlnStatusId                    = 0,
                    Gender                         = GetGender(monitoringInformation.Gender),
                    EthnicOrigin                   = GetEthnicOrigin(monitoringInformation.Ethnicity),
                    EthnicOriginOther              = GetEthnicOriginOther(monitoringInformation.Ethnicity),
                    ApplicationLimitEnforced       = false,
                    LastAccessedDate               = candidateUser.User.LastLogin ?? candidateUser.Candidate.DateUpdated ?? candidateUser.Candidate.DateCreated,
                    AdditionalEmail                = anonymise ? candidateGuid + "@anon.com" : email.Length > 50 ? "" : email,
                    Disability                     = GetDisability(monitoringInformation.DisabilityStatus),
                    DisabilityOther                = GetDisabilityOther(monitoringInformation.DisabilityStatus),
                    HealthProblems                 = "",
                    ReceivePushedContent           = false,
                    ReferralAgent                  = false,
                    DisableAlerts                  = false,
                    UnconfirmedEmailAddress        = "",
                    MobileNumberUnconfirmed        = false,
                    DoBFailureCount                = null,
                    ForgottenUsernameRequested     = false,
                    ForgottenPasswordRequested     = false,
                    TextFailureCount               = 0,
                    EmailFailureCount              = 0,
                    LastAccessedManageApplications = null,
                    ReferralPoints                 = 0,
                    BeingSupportedBy               = "NAS Exemplar",
                    LockedForSupportUntil          = null,
                    NewVacancyAlertEmail           = null,
                    NewVacancyAlertSMS             = null,
                    AllowMarketingMessages         = GetAllowMarketingMessages(candidateUser.Candidate.CommunicationPreferences),
                    ReminderMessageSent            = true,
                    CandidateGuid                  = candidateGuid
                };

                var person = new Person
                {
                    PersonId       = candidateSummary.PersonId,
                    Title          = 0,
                    OtherTitle     = "",
                    FirstName      = anonymise ? "Candidate" : candidateUser.Candidate.RegistrationDetails.FirstName,
                    MiddleNames    = anonymise ? "" : candidateUser.Candidate.RegistrationDetails.MiddleNames,
                    Surname        = anonymise ? candidateGuid.ToString().Replace("-", "") : candidateUser.Candidate.RegistrationDetails.LastName,
                    LandlineNumber = anonymise ? "07999999999" : candidateUser.Candidate.RegistrationDetails.PhoneNumber,
                    MobileNumber   = "",
                    Email          = anonymise ? candidateGuid + "@anon.com" : email,
                    PersonTypeId   = 1
                };

                return(new CandidatePerson
                {
                    Candidate = candidate,
                    SchoolAttended = MapSchoolAttended(candidateUser, schoolAttendedIds, candidateId),
                    Person = person
                });
            }
            catch (Exception ex)
            {
                //Copes with test data from integration and acceptance tests
                _logService.Error($"Failed to map Candidate with Id {candidateUser.Candidate.Id}", ex);
                return(null);
            }
        }