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));
        }
Exemple #2
0
        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));
            }
        }