public async Task AddMedicalConsultationService_ShouldReturnSuccess_WhenMcIsValid()
        {
            var doctorId  = Guid.NewGuid();
            var patientId = Guid.NewGuid();
            var consult   = new MedicalConsultation();
            var dto       = new DtoAddMedicalConsultationInput
            {
                PatientId = patientId
            };

            var doctor = new Doctor {
                Id = doctorId
            };
            var patient = new Patient {
                Id = patientId
            };

            _userRepository.Setup(x => x.GetById(doctorId)).ReturnsAsync(doctor);
            _patientRepository.Setup(x => x.GetById(patientId)).ReturnsAsync(patient);
            _mcRepository.Setup(x => x.Insert(consult)).ReturnsAsync(consult);

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

            Assert.Equal(HttpStatusCode.OK, response.Status);
        }
        public async Task <IActionResult> AddMedicalConsultation
            ([FromBody] DtoAddMedicalConsultationInput medicalConsultation)
        {
            var doctorId        = Guid.Parse(User.Claims.First(x => x.Type == "UserId").Value);
            var responseService = await _addMedicalConsultationService.Execute(doctorId, medicalConsultation);

            if (responseService.Success)
            {
                return(Created("api/[controller]/{id}", responseService.Value));
            }
            return(BadRequest(responseService.Value));
        }
Example #3
0
        public async Task <ResponseService <MedicalConsultation> > Execute(Guid doctorId, DtoAddMedicalConsultationInput medicalConsultation)
        {
            var doctorExists = await _userRepository.GetById(doctorId);

            if (doctorExists == null)
            {
                return(GenerateErroServiceResponse <MedicalConsultation>("O Medico informado não existe."));
            }

            var patientExists = await _patientRepository.GetById(medicalConsultation.PatientId);

            if (patientExists == null)
            {
                return(GenerateErroServiceResponse <MedicalConsultation>("O paciente informado não existe."));
            }

            var newConsultation = MedicalConsultationAdapter.CreateMedicalConsultation(
                patientExists.Id,
                doctorExists.Id);

            var createdConsultation = await _medicalConsultationRepository.Insert(newConsultation);

            return(GenerateSuccessServiceResponse(createdConsultation));
        }