Example #1
0
        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> AddChapterToCourseAsync(dynamic id, ChuongHocViewModel modelVm)
        {
            try
            {
                KhoaHoc khoaHoc = await _khoaHocRepository.GetSingleByIdAsync(id);

                if (khoaHoc == null)
                {
                    return(new ResponseEntity(StatusCodeConstants.NOT_FOUND));
                }

                // Kiểm tra xem tên có bị trùng không
                //if (await _chuongHocRepository.CheckValidByConditionAsync("TenChuong", modelVm.TenChuong))
                //    return new ResponseEntity(StatusCodeConstants.BAD_REQUEST, modelVm, "Tên đã được sử dụng!");

                // Thêm mới chương học
                ChuongHoc chuongHoc = _mapper.Map <ChuongHoc>(modelVm);
                chuongHoc = await _chuongHocRepository.InsertAsync(chuongHoc);

                if (chuongHoc == null) // Nếu thêm mới thất bại
                {
                    return(new ResponseEntity(StatusCodeConstants.BAD_REQUEST, modelVm, MessageConstants.INSERT_ERROR));
                }

                var khoaHocVm = _mapper.Map <KhoaHocViewModel>(khoaHoc);
                khoaHocVm.DanhSachChuongHoc.Add(chuongHoc.Id);

                // Cập nhật lại danh sách chương của khóa học
                khoaHoc = _mapper.Map <KhoaHoc>(khoaHocVm);
                if ((await _khoaHocRepository.UpdateAsync(id, khoaHoc)) == null)
                {
                    return(new ResponseEntity(StatusCodeConstants.BAD_REQUEST, modelVm, MessageConstants.INSERT_ERROR));
                }

                var thongTinChuongHocVm = _mapper.Map <ThongTinChuongHocViewModel>(chuongHoc);
                return(new ResponseEntity(StatusCodeConstants.OK, thongTinChuongHocVm, MessageConstants.INSERT_SUCCESS));
            }
            catch (Exception ex)
            {
                return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, ex.Message));
            }
        }