public async Task <IActionResult> UpdateAsync(long id, AppointmentInDTO appointmentDTO) { if (appointmentDTO == null) { return(BadRequest()); } var existing = await _unitOfWork.Appointments.GetByIdAsync(id); if (existing == null) { return(NotFound($"Appointment {id} could not be found")); } var newAppointmentModel = _mapper.Map <Appointment>(appointmentDTO); await _unitOfWork.Appointments.UpdateAsync(id, newAppointmentModel); await _unitOfWork.CompleteAsync(); appointmentDTO = _mapper.Map <AppointmentInDTO>(existing); return(Ok(appointmentDTO)); }
public async Task <IActionResult> CreateAsync([FromBody] AppointmentInDTO appointmentDTO) { if (!ModelState.IsValid || appointmentDTO == null) { return(BadRequest("Please fill out the required fields.")); } var appointmentModel = _mapper.Map <Appointment>(appointmentDTO); var existingUserWorkPeriod = await _unitOfWork.UserWorkPeriods.FindAsync(u => u.UserId == appointmentDTO.OwnerId && u.WorkPeriodId == appointmentDTO.WorkPeriodId); if (existingUserWorkPeriod.Count() == 0 && appointmentDTO.OwnerId != null) { var userPeriodModel = _mapper.Map <UserWorkPeriod>(new UserWorkPeriodDTO(appointmentDTO.OwnerId ?? 0, appointmentDTO.WorkPeriodId)); await _unitOfWork.UserWorkPeriods.AddAsync(userPeriodModel); } await _unitOfWork.Appointments.AddAsync(appointmentModel); await _unitOfWork.CompleteAsync(); appointmentDTO = _mapper.Map <AppointmentInDTO>(appointmentModel); return(CreatedAtRoute("GetAppointment", new { id = appointmentDTO.Id }, appointmentDTO)); }