private List <AggregateRoot> DeleteAllAssociatedSessionAndUnassignFormateursAndLieux(Guid formationId) { var aggregatesToPublish = new List <AggregateRoot>(); var trainersUnassigner = new Unassigner <Trainer, TrainerNotExistsException>(EventBus); var locationUnassigner = new Unassigner <Location, LocationNotExistsException>(EventBus); var allSessions = _sessionQueries.GetAll(formationId); foreach (var sessionResult in allSessions) { trainersUnassigner.Unassign(sessionResult.TrainerId, sessionResult.SessionStart, sessionResult.Duration); locationUnassigner.Unassign(sessionResult.LocationId, sessionResult.SessionStart, sessionResult.Duration); var session = GetAggregate <Session>(sessionResult.SessionId); session.Delete(); aggregatesToPublish.Add(session); } aggregatesToPublish.AddRange(trainersUnassigner.GetUnassignedAggregates()); aggregatesToPublish.AddRange(locationUnassigner.GetUnassignedAggregates()); return(aggregatesToPublish); }
public CardAssignment(AssignedBehavior use, Unassigner unassigner) { this.unassigner = unassigner; this.use = use; }