protected override async Task HandleCore(AddPayeToAccountCommand message) { await ValidateMessage(message); var accountId = _hashingService.DecodeValue(message.HashedAccountId); await _payeRepository.AddPayeToAccount( new Paye { AccessToken = message.AccessToken, RefreshToken = message.RefreshToken, AccountId = accountId, EmpRef = message.Empref, RefName = message.EmprefName, Aorn = message.Aorn } ); var userResponse = await _mediator.SendAsync(new GetUserByRefQuery { UserRef = message.ExternalUserId }); await AddAuditEntry(message, accountId); await AddPayeScheme(message.Empref, accountId, userResponse.User.FullName, userResponse.User.UserRef, message.Aorn, message.EmprefName, userResponse.User.CorrelationId); await NotifyPayeSchemeAdded(message.HashedAccountId, message.Empref); }