private void EnsureAccountPayeSchemeHasBeenAdded(AccountPayeScheme accountPayeScheme) { if (_accountPayeSchemes.All(aps => aps.AccountId != accountPayeScheme.AccountId && aps.EmployerReferenceNumber != accountPayeScheme.EmployerReferenceNumber)) { throw new InvalidOperationException("Requires account paye scheme has been added"); } }
public virtual AccountPayeScheme AddPayeScheme(string employerReferenceNumber, DateTime created) { EnsurePayeSchemeHasNotAlreadyBeenAdded(employerReferenceNumber); var accountPayeScheme = new AccountPayeScheme(this, employerReferenceNumber, created); _accountPayeSchemes.Add(accountPayeScheme); return(accountPayeScheme); }
public LevyDeclarationSaga(DateTime payrollPeriod, AccountPayeScheme accountPayeScheme) { Type = LevyDeclarationSagaType.AdHoc; PayrollPeriod = payrollPeriod; Created = DateTime.UtcNow; AccountPayeSchemeId = accountPayeScheme.Id; ImportPayeSchemeLevyDeclarationsTasksCount = 1; UpdateAccountTransactionBalancesTasksCount = 1; Publish(() => new StartedProcessingLevyDeclarationsAdHocEvent(Id, PayrollPeriod, AccountPayeSchemeId.Value, Created)); }
public virtual void RemovePayeScheme(AccountPayeScheme accountPayeScheme, DateTime removed) { EnsureAccountPayeSchemeHasBeenAdded(accountPayeScheme); accountPayeScheme.Delete(removed); }