protected override async Task Handle(UpdatePermissionsCommand request, CancellationToken cancellationToken) { var accountProviderLegalEntity = await _accountProviderLegalEntitiesRepository.CreateQuery().SingleOrDefaultAsync(r => r.Ukprn == request.Ukprn && r.AccountProviderLegalEntityId == request.AccountProviderLegalEntityId, cancellationToken); if (accountProviderLegalEntity == null) { accountProviderLegalEntity = new AccountProviderLegalEntity( request.AccountId, request.AccountLegalEntityId, request.AccountProviderId, request.AccountProviderLegalEntityId, request.Ukprn, request.GrantedOperations, request.Updated, request.MessageId); await _accountProviderLegalEntitiesRepository.Add(accountProviderLegalEntity, null, cancellationToken); } else { accountProviderLegalEntity.UpdatePermissions(request.GrantedOperations, request.Updated, request.MessageId); await _accountProviderLegalEntitiesRepository.Update(accountProviderLegalEntity, null, cancellationToken); } }
protected override async Task Handle(DeletePermissionsCommand request, CancellationToken cancellationToken) { var accountProviderLegalEntity = await _accountProviderLegalEntitiesRepository.CreateQuery().SingleAsync(r => r.Ukprn == request.Ukprn && r.AccountProviderLegalEntityId == request.AccountProviderLegalEntityId, cancellationToken); accountProviderLegalEntity.Delete(request.Deleted, request.MessageId); await _accountProviderLegalEntitiesRepository.Update(accountProviderLegalEntity, null, cancellationToken); }