public async Task <int> AddAsync([NotNull] Patient patient) { if (patient == null) { throw new ArgumentNullException(nameof(patient)); } using (var context = _contextFactory.Create()) { var entity = patient.ToEntity(); context.Patients.Add(entity); await context .SaveChangesAsync() .ConfigureAwait(false); await _eventBus .PublishAsync(new PatientAddedEvent(entity.Id)) .ConfigureAwait(false); return(entity.Id); } }
public async Task <int> AddAsync(Session session) { if (session == null) { throw new ArgumentNullException(nameof(session)); } using (var context = _factory.Create()) { var entity = session.ToEntity(); context.Sessions.Add(entity); await context .SaveChangesAsync() .ConfigureAwait(false); await _eventBus .PublishAsync(new SessionAddedEvent(entity.Id)) .ConfigureAwait(false); return(entity.Id); } }