public async Task <NewScheduleResponse> RequestNewSchedule(NewScheduleRequest request) { var s = await _unitOfWork.GetRepository <Schedule>().FindAsync(x => x.PatientId == request.PatientId && x.ShiftId == request.ShiftId); if (s != null) { throw new Exception("Bệnh nhân đã đăng ký ca này"); } var ordr = 1; var s1 = await _unitOfWork.GetRepository <Schedule>().FindAsync(x => x.ShiftId == request.ShiftId && x.PatientId != request.PatientId); if (s1 != null) { ordr = s1.Order + 1; } var id = newScheduleID(); Schedule schedule = new Schedule { Id = id, ShiftId = request.ShiftId, PatientId = request.PatientId, Status = 1, Order = ordr, BHYT = request.BHYT }; _unitOfWork.GetRepository <Schedule>().Add(schedule); await _unitOfWork.CommitAsync(); var p = await _unitOfWork.GetRepository <Patient>().FindAsync(x => x.Id == request.PatientId); var shift = await _unitOfWork.GetRepository <Shift>().FindAsync(x => x.Id == request.ShiftId); var room = await _unitOfWork.GetRepository <Room>().FindAsync(x => x.Id == shift.RoomId); var doctor = await _unitOfWork.GetRepository <Doctor>().FindAsync(x => x.Id == shift.DoctorId); var time = await _unitOfWork.GetRepository <Time>().FindAsync(x => x.Id == shift.TimeId); return(new NewScheduleResponse { Id = id, PatientId = p.Id, Name = p.Name, Birthday = p.Birthday, Room = room.Name, Doctor = doctor.Name, Date = shift.Date, Time = time.ShiftTime, Order = ordr, Status = 1, BHYT = request.BHYT }); }
public async Task <IActionResult> RequestNewSchedule(RequestNewScheduleController request) { string patientId; if (string.IsNullOrEmpty(request.PatientId)) { patientId = await _shiftService.CreateNewPatient(request); request.PatientId = patientId; } var newScheduleRequest = new NewScheduleRequest { PatientId = request.PatientId, ShiftId = request.ShiftId, BHYT = request.BHYT }; var response = await _shiftService.RequestNewSchedule(newScheduleRequest); return(Ok(new ApiOkResponse(response))); }