public void Delete(Party modifyingParty, UserInfo userInfo) { CheckIsWithParty(modifyingParty); StartTrackingSession(UserAction.DeleteCohort, modifyingParty, EmployerAccountId, ProviderId, userInfo); ChangeTrackingSession.TrackUpdate(this); LastUpdatedOn = DateTime.UtcNow; MarkAsDeletedAndEmitCohortDeletedEvent(modifyingParty, userInfo); foreach (var draftApprenticeship in DraftApprenticeships.ToArray()) { RemoveDraftApprenticeship(draftApprenticeship); } ChangeTrackingSession.CompleteTrackingSession(); }