public async Task Save(Learner aggregate) { if (aggregate.IsNew) { await _learnerDataRepository.Add(aggregate.GetModel()); } else { await _learnerDataRepository.Update(aggregate.GetModel()); } foreach (dynamic domainEvent in aggregate.FlushEvents()) { await _domainEventDispatcher.Send(domainEvent); } }