private void UpdateDelegate(DelegateTableRow delegateRow, DelegateUser delegateUser) { try { userDataService.UpdateDelegate( delegateUser.Id, delegateRow.FirstName !, delegateRow.LastName !, delegateRow.JobGroupId !.Value, delegateRow.Active !.Value, delegateRow.Answer1, delegateRow.Answer2, delegateRow.Answer3, delegateRow.Answer4, delegateRow.Answer5, delegateRow.Answer6, delegateRow.AliasId, delegateRow.Email ! ); UpdateUserProfessionalRegistrationNumberIfNecessary( delegateRow.HasPrn, delegateRow.Prn, delegateUser.Id ); delegateRow.RowStatus = RowStatus.Updated; } catch { delegateRow.Error = BulkUploadResult.ErrorReason.UnexpectedErrorForUpdate; } }
private void ProcessDelegateRow( int centreId, DateTime?welcomeEmailDate, DelegateTableRow delegateRow, IEnumerable <int> jobGroupIds ) { if (!delegateRow.Validate(jobGroupIds)) { return; } var delegateUserByCandidateNumber = GetDelegateUserByCandidateNumberOrDefault(centreId, delegateRow.CandidateNumber); if (!string.IsNullOrEmpty(delegateRow.CandidateNumber) && delegateUserByCandidateNumber == null) { delegateRow.Error = BulkUploadResult.ErrorReason.NoRecordForDelegateId; return; } var delegateUserByAliasId = GetDelegateUserByAliasIdOrDefault(centreId, delegateRow.AliasId); if (delegateUserByAliasId != null && delegateUserByCandidateNumber != null && delegateUserByAliasId.CandidateNumber != delegateUserByCandidateNumber.CandidateNumber) { delegateRow.Error = BulkUploadResult.ErrorReason.AliasIdInUse; return; } var userToUpdate = delegateUserByCandidateNumber ?? delegateUserByAliasId; if (userToUpdate == null) { if (!userService.IsDelegateEmailValidForCentre(delegateRow.Email !, centreId)) { delegateRow.Error = BulkUploadResult.ErrorReason.EmailAddressInUse; return; } RegisterDelegate(delegateRow, welcomeEmailDate, centreId); } else { ProcessPotentialUpdate(centreId, delegateRow, userToUpdate); } }
private void ProcessPotentialUpdate(int centreId, DelegateTableRow delegateRow, DelegateUser delegateUser) { if (delegateRow.Email != delegateUser.EmailAddress && !userService.IsDelegateEmailValidForCentre(delegateRow.Email !, centreId)) { delegateRow.Error = BulkUploadResult.ErrorReason.EmailAddressInUse; return; } if (delegateRow.MatchesDelegateUser(delegateUser)) { delegateRow.RowStatus = RowStatus.Skipped; return; } UpdateDelegate(delegateRow, delegateUser); }
public DelegateRecord(DelegateTableRow row, int centreId, bool approved) { CentreId = centreId; CandidateNumber = row.CandidateNumber; FirstName = row.FirstName; LastName = row.LastName !; JobGroupId = row.JobGroupId !.Value; Active = row.Active !.Value; Answer1 = row.Answer1; Answer2 = row.Answer2; Answer3 = row.Answer3; Answer4 = row.Answer4; Answer5 = row.Answer5; Answer6 = row.Answer6; AliasId = row.AliasId; Approved = approved; Email = row.Email !; }
private void RegisterDelegate(DelegateTableRow delegateRow, DateTime?welcomeEmailDate, int centreId) { var model = new DelegateRegistrationModel(delegateRow, centreId, welcomeEmailDate); var errorCodeOrCandidateNumber = registrationDataService.RegisterDelegate(model); switch (errorCodeOrCandidateNumber) { case "-1": delegateRow.Error = BulkUploadResult.ErrorReason.UnexpectedErrorForCreate; break; case "-2": case "-3": case "-4": throw new ArgumentOutOfRangeException( nameof(errorCodeOrCandidateNumber), errorCodeOrCandidateNumber, "Unknown return value when creating delegate record." ); default: var newDelegateRecord = userDataService.GetDelegateUserByCandidateNumber(errorCodeOrCandidateNumber, centreId) !; UpdateUserProfessionalRegistrationNumberIfNecessary( delegateRow.HasPrn, delegateRow.Prn, newDelegateRecord.Id ); SetUpSupervisorDelegateRelations(delegateRow.Email !, centreId, newDelegateRecord.Id); if (welcomeEmailDate.HasValue) { passwordResetService.GenerateAndScheduleDelegateWelcomeEmail( delegateRow.Email !, newDelegateRecord.CandidateNumber, configuration.GetAppRootPath(), welcomeEmailDate.Value, "DelegateBulkUpload_Refactor" ); } delegateRow.RowStatus = RowStatus.Registered; break; } }
public DelegateRegistrationModel( DelegateTableRow row, int centreId, DateTime?welcomeEmailDate ) : this( row.FirstName !,