public async Task <bool> Handle(AddNewMedicalRecordCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { NotifyValidationErrors(message); return(await Task.FromResult(false)); } var medicalReport = new Models.MedicalRecord.Builder() .WithPatient(message.Patient) .WithPractitioner(message.Practitioner) .WithShortDescription(message.ShortDescription) .WithLongDescription(message.LongDescription) .Build(); if (!medicalReport.IsValid()) { NotifyValidationErrors(medicalReport.ValidationResult); return(await Task.FromResult(false)); } _medicalRecordRepository.Add(medicalReport); if (await Commit()) { await _bus.RaiseEvent(new MedicalReportAddedEvent(medicalReport)); } return(await Task.FromResult(true)); }
public async Task <MedicalRecordDto> Add(MedicalRecordDto model) { model.Code = string.Empty; var entity = _medicalRecordRepository.Add(_mapper.Map <TMedicalRecord>(model)); await _medicalRecordRepository.SaveChangeAsync(); var maxId = await _medicalRecordRepository.Repo.MaxAsync(c => c.Id); entity.Code = $"BA-{(maxId + 1):D10}"; await _medicalRecordRepository.SaveChangeAsync(); model.Id = entity.Id; return(model); }