public override async Task <ResponseEntity> DeleteByIdAsync(List <dynamic> listId) { try { IEnumerable <BaiHoc> dsBaiHoc = await _baiHocRepository.GetMultiByIdAsync(listId); if (await _baiHocRepository.DeleteByIdAsync(listId) == 0) { return(new ResponseEntity(StatusCodeConstants.BAD_REQUEST, listId, MessageConstants.DELETE_ERROR)); } // Xóa id khỏi danh sách bài học của chương học foreach (BaiHoc baiHoc in dsBaiHoc) { ChuongHoc chuongHoc = await _chuongHocRepository.GetSingleByIdAsync(baiHoc.MaChuongHoc); ChuongHocViewModel chuongHocVm = _mapper.Map <ChuongHocViewModel>(chuongHoc); chuongHocVm.DanhSachBaiHoc.RemoveAll(x => x == baiHoc.Id); chuongHoc = _mapper.Map <ChuongHoc>(chuongHocVm); if (chuongHocVm.DanhSachBaiHoc.Count == 0) { chuongHoc.DanhSachBaiHoc = ""; } await _chuongHocRepository.UpdateAsync(chuongHoc.Id, chuongHoc); } return(new ResponseEntity(StatusCodeConstants.OK, listId, MessageConstants.DELETE_SUCCESS)); } catch (Exception ex) { return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, ex.Message)); } }
public async Task <ResponseEntity> AddLessonToChapterAsync(dynamic id, BaiHocViewModel modelVm) { try { ChuongHoc chuongHoc = await _chuongHocRepository.GetSingleByIdAsync(id); if (chuongHoc == null) { return(new ResponseEntity(StatusCodeConstants.NOT_FOUND)); } // Thêm mới bài học BaiHoc baiHoc = _mapper.Map <BaiHoc>(modelVm); baiHoc = await _baiHocRepository.InsertAsync(baiHoc); if (baiHoc == null) // Nếu thêm mới thất bại { return(new ResponseEntity(StatusCodeConstants.BAD_REQUEST, modelVm, MessageConstants.INSERT_ERROR)); } var chuongHocVm = _mapper.Map <ChuongHocViewModel>(chuongHoc); chuongHocVm.DanhSachBaiHoc.Add(baiHoc.Id); // Cập nhật lại danh sách bài của chương học chuongHoc = _mapper.Map <ChuongHoc>(chuongHocVm); if ((await _chuongHocRepository.UpdateAsync(id, chuongHoc)) == null) { return(new ResponseEntity(StatusCodeConstants.BAD_REQUEST, modelVm, MessageConstants.INSERT_ERROR)); } modelVm.Id = baiHoc.Id; return(new ResponseEntity(StatusCodeConstants.OK, modelVm, MessageConstants.INSERT_SUCCESS)); } catch (Exception ex) { return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, ex.Message)); } }