private void EnsureAccountLegalEntityHasBeenAdded(AccountLegalEntity accountLegalEntity) { if (_accountLegalEntities.All(ale => ale.Id != accountLegalEntity.Id)) { throw new InvalidOperationException("Requires account legal entity has been added"); } }
private void EnsureAccountLegalEntityHasNotBeenDeleted(AccountLegalEntity accountLegalEntity) { if (accountLegalEntity.Deleted != null) { throw new InvalidOperationException("Requires account legal entity has not been deleted"); } }
public AccountLegalEntity AddAccountLegalEntity(long accountLegalEntityId, string accountLegalEntityPublicHashedId, string name, DateTime added) { EnsureAccountLegalEntityHasNotAlreadyBeenAdded(accountLegalEntityId); var accountLegalEntity = new AccountLegalEntity(this, accountLegalEntityId, accountLegalEntityPublicHashedId, name, added); _accountLegalEntities.Add(accountLegalEntity); return(accountLegalEntity); }
public void UpdatePermissions(AccountLegalEntity accountLegalEntity, User user, HashSet <Operation> grantedOperations) { EnsureAccountLegalEntityHasNotBeenDeleted(accountLegalEntity); var accountProviderLegalEntity = _accountProviderLegalEntities.SingleOrDefault(aple => aple.AccountLegalEntityId == accountLegalEntity.Id); if (accountProviderLegalEntity == null) { _accountProviderLegalEntities.Add(new AccountProviderLegalEntity(this, accountLegalEntity, user, grantedOperations)); } else { accountProviderLegalEntity.UpdatePermissions(user, grantedOperations); } }
public AccountProviderLegalEntity(AccountProvider accountProvider, AccountLegalEntity accountLegalEntity, User user, HashSet <Operation> grantedOperations) { AccountProvider = accountProvider; AccountProviderId = accountProvider.Id; AccountLegalEntity = accountLegalEntity; AccountLegalEntityId = accountLegalEntity.Id; _permissions.AddRange(grantedOperations.Select(o => new Permission(this, o))); Created = DateTime.UtcNow; Publish(() => new UpdatedPermissionsEvent( AccountProvider.AccountId, AccountLegalEntity.Id, AccountProvider.Id, Id, AccountProvider.ProviderUkprn, user.Ref, user.Email, user.FirstName, user.LastName, grantedOperations, new HashSet <Operation>(), Created)); }
public void RemoveAccountLegalEntity(AccountLegalEntity accountLegalEntity, DateTime removed) { EnsureAccountLegalEntityHasBeenAdded(accountLegalEntity); accountLegalEntity.Delete(removed); }