示例#1
0
        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));
        }
示例#2
0
        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);
        }