private async Task NotifyPayeSchemeRemoved(string hashedAccountId, string payeRef) { var payeEvent = _payeSchemeEventFactory.CreatePayeSchemeRemovedEvent(hashedAccountId, payeRef); var genericEvent = _genericEventFactory.Create(payeEvent); await _mediator.SendAsync(new PublishGenericEventCommand { Event = genericEvent }); }
private async Task NotifyAccountCreated(string hashedAccountId) { var accountEvent = _accountEventFactory.CreateAccountCreatedEvent(hashedAccountId); var genericEvent = _genericEventFactory.Create(accountEvent); await _mediator.SendAsync(new PublishGenericEventCommand { Event = genericEvent }); }
protected override async Task HandleCore(SignEmployerAgreementCommand message) { var validationResult = await _validator.ValidateAsync(message); if (!validationResult.IsValid()) { throw new InvalidRequestException(validationResult.ValidationDictionary); } var owner = await _membershipRepository.GetCaller(message.HashedAccountId, message.ExternalUserId); if (owner == null || (Role)owner.RoleId != Role.Owner) { throw new UnauthorizedAccessException(); } var agreementId = _hashingService.DecodeValue(message.HashedAgreementId); var signedAgreementDetails = new Domain.Models.EmployerAgreement.SignEmployerAgreement { SignedDate = message.SignedDate, AgreementId = agreementId, SignedById = owner.UserId, SignedByName = $"{owner.FirstName} {owner.LastName}" }; await _employerAgreementRepository.SignAgreement(signedAgreementDetails); var accountId = _hashingService.DecodeValue(message.HashedAccountId); await AddAuditEntry(message, accountId, agreementId); var agreement = await _employerAgreementRepository.GetEmployerAgreement(agreementId); var hashedLegalEntityId = _hashingService.HashValue(agreement.LegalEntityId); var agreementEvent = _agreementEventFactory.CreateSignedEvent(message.HashedAccountId, hashedLegalEntityId, message.HashedAgreementId); var genericEvent = _genericEventFactory.Create(agreementEvent); await _mediator.SendAsync(new PublishGenericEventCommand { Event = genericEvent }); }