コード例 #1
0
        public IActionResult AddExamination(ScheduleExaminationDTO examinationDTO)
        {
            var patientJmbg = HttpContext.User.FindFirst("Jmbg").Value;

            examinationDTO.PatientJmbg = patientJmbg;

            return(RequestAdapter.SendRequestWithBody(_serviceSettings.ScheduleServiceUrl, "/api/examination", examinationDTO));
        }
コード例 #2
0
        public void Schedule(ScheduleExaminationDTO examinationDTO)
        {
            DateTime    startTime   = examinationDTO.StartTime.AddHours(-1);
            DateTime    endTime     = examinationDTO.StartTime.AddHours(1);
            Patient     patient     = _patientRepository.Get(examinationDTO.PatientJmbg, startTime, endTime);
            Doctor      doctor      = _doctorRepository.Get(examinationDTO.DoctorJmbg, startTime, endTime);
            Room        room        = _roomRepository.Get(examinationDTO.RoomId, startTime, endTime);
            Examination examination = new Examination(examinationDTO.StartTime, patient, doctor, room);

            if (!examination.IsAvailable())
            {
                throw new ValidationException("Examination is not available.");
            }
            if (examination.IsBefore(_clock.GetTimeLimit()))
            {
                throw new ValidationException("The time limit for scheduling the examinaton has passed.");
            }

            _examinationRepository.Add(examination);
        }
コード例 #3
0
 public IActionResult ScheduleExamination(ScheduleExaminationDTO examinationDTO)
 {
     _examinationService.Schedule(examinationDTO);
     return(NoContent());
 }