public async Task <IActionResult> CreateReport([FromBody] DtoCreateMedicalReportInput report)
        {
            var reportCreatorId = Guid.Parse(User.Claims.First(x => x.Type == "UserId").Value);
            var responseService = await _createMedicalReportService.Execute(reportCreatorId, report);

            if (responseService.Success)
            {
                return(Created("api/[controller]/{id}", responseService.Value));
            }

            return(BadRequest(responseService.Message));
        }
Exemplo n.º 2
0
        public async Task CreateMedicalReportService_ShouldReturnError_WhenReportIsInvalid()
        {
            var creatorId = Guid.NewGuid();
            var mcId      = Guid.NewGuid();
            var report    = "mockReport";
            var dto       = new DtoCreateMedicalReportInput
            {
                MedicalConsultationId = mcId,
                Report = report
            };
            MedicalConsultation invalidMc = null;

            _mcRepository.Setup(x => x.GetById(mcId)).ReturnsAsync(invalidMc);

            var response = await _service.Execute(creatorId, dto);

            Assert.Equal(HttpStatusCode.BadRequest, response.Status);
        }
Exemplo n.º 3
0
        public async Task CreateMedicalReportService_ShouldReturnSuccess_WhenReportIsValid()
        {
            var creatorId = Guid.NewGuid();
            var mcId      = Guid.NewGuid();
            var report    = "mockReport";
            var dto       = new DtoCreateMedicalReportInput
            {
                MedicalConsultationId = mcId,
                Report = report
            };
            var mc = new MedicalConsultation {
                Id = mcId
            };

            _mcRepository.Setup(x => x.GetById(mcId)).ReturnsAsync(mc);

            var response = await _service.Execute(creatorId, dto);

            Assert.Equal(HttpStatusCode.OK, response.Status);
        }
        public async Task <ResponseService <MedicalConsultation> > Execute(Guid reportCreatorId, DtoCreateMedicalReportInput report)
        {
            var medicalConsultation = await _medicalConsultationRepository.GetById(report.MedicalConsultationId);

            if (medicalConsultation == null)
            {
                return(GenerateErroServiceResponse <MedicalConsultation>("A consulta para laudo não encontrada."));
            }
            try
            {
                medicalConsultation.MakeReport(report.Report, reportCreatorId);

                await _medicalConsultationRepository.Update(medicalConsultation);

                return(GenerateSuccessServiceResponse(medicalConsultation));
            }
            catch (Exception ex)
            {
                return(GenerateErroServiceResponse <MedicalConsultation>(ex.Message));
            }
        }