public async Task <IActionResult> CreateUpdate([FromBody] AppointmentDTO appointmentDTO)
        {
            try
            {
                // The API will return Bad Request if
                // appointmentDTO is null or ModelState
                // is not valid without executing this method
                // I think I don't need the following code
                // start
                if (appointmentDTO == null)
                {
                    return(BadRequest(ModelState));
                }
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                // end   --- Iyad
                var isDateTimeAvailable = await _appointmentRepository.IsDateTimeAvailable(appointmentDTO.AppointmentDate);

                if (isDateTimeAvailable)
                {
                    return(BadRequest(ModelState));
                }
                var appointment = _mapper.Map <Appointment>(appointmentDTO);
                var response    = await _appointmentRepository.CreateUpdate(appointment);

                if (response == null)
                {
                    return(StatusCode(500, "Something went wrong. Please try again later!"));
                }
                return(Ok(response));
            }
            catch (Exception)
            {
                return(StatusCode(500, "Something went wrong. Please try again later!"));
            }
        }