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)); }
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)); }