public async Task <ActionResult> CreateSchedulingAsync([FromBody] SchedulingCreateModel schedulingCM) { try { //create scheduling + block với isAvailable mặc định là FALSE cho cả 2 bảng(để k tạo ticket- k cho khách hàng đặt lịch) schedulingCM.Date = schedulingCM.Date.Date; var scheduling = schedulingCM.Adapt <Scheduling>(); //dung roomservice lấy SpeciaId ra rồi gắn vô scheduling var speciality = _roomService.GetRoom(schedulingCM.RoomId).Speciality; scheduling.SpecialityId = speciality.Id.ToString(); scheduling.SpecialityName = speciality.Name; var totalBlock = ((schedulingCM.EndTime - schedulingCM.StartTime) * 2).TotalHours; if (totalBlock <= 0 || ((scheduling.StartTime.Minutes != 30 && scheduling.StartTime.Minutes != 0) || (scheduling.EndTime.Minutes != 0 && scheduling.EndTime.Minutes != 30))) { return(BadRequest("Vui lòng nhập đúng giờ!")); } _schedulingService.CreateScheduling(scheduling, Convert.ToInt32(totalBlock), (await _userManager.GetUserAsync(User)).UserName); _schedulingService.Save(); } catch (Exception) { return(BadRequest("Insert fail vì trùng phòng hoặc trùng bác sĩ tại một thời điểm.")); } return(StatusCode(201)); }
public ActionResult CreateScheduling([FromBody] CreateSchedulingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var result = _schedulingService.CreateScheduling(model); return(Ok(result)); } catch (ArgumentException e) { return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message)); } }