public async Task <ActionResult <Doctor> > CreateDoctor(DoctorResource doctorResource)
        {
            var doctor = _mapper.Map <DoctorResource, Doctor>(doctorResource);
            await _doctorService.CreateDoctor(doctor);

            return(Ok(doctor));
        }
        public async Task <ActionResult <Doctor> > UpdateDoctor(Guid id, [FromBody] DoctorResource saveDoctor)
        {
            var doctorToBeUpdate = await _doctorService.GetDoctorById(id);

            if (doctorToBeUpdate == null)
            {
                return(NotFound());
            }

            var doctorResuource = _mapper.Map <DoctorResource, Doctor>(saveDoctor);

            await _doctorService.UpdateDoctor(doctorToBeUpdate, doctorResuource);

            var updatedDoctor = await _doctorService.GetDoctorById(id);

            return(Ok(updatedDoctor));
        }
        public async Task <IActionResult> PostDoctor([FromBody] DoctorResource doctorResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var title = await this.titleRepository.GetTitleAsync(doctorResource.TitleId);

            doctorResource.RoleId = title.IsSpecialist? 3 : 2; // 3: nonSpecialist, 2: Specialist

            var doctor = mapper.Map <DoctorResource, Doctor>(doctorResource);

            this.repository.CreateDoctor(doctor);
            await this.unitOfWork.CompleteAsync();

            doctor = await this.repository.getDoctorAsync(doctor.Id);

            return(Ok(mapper.Map <Doctor, DoctorResource>(doctor)));
        }