Esempio n. 1
0
        public override async Task <ResponseEntity> DeleteByIdAsync(List <dynamic> listId)
        {
            try
            {
                IEnumerable <ChuongHoc> dsChuongHoc = await _chuongHocRepository.GetMultiByIdAsync(listId);

                if (await _chuongHocRepository.DeleteByIdAsync(listId) == 0)
                {
                    return(new ResponseEntity(StatusCodeConstants.BAD_REQUEST, listId, MessageConstants.DELETE_ERROR));
                }

                // Xóa id khỏi danh sách chương học của khóa học
                foreach (ChuongHoc chuongHoc in dsChuongHoc)
                {
                    KhoaHoc khoaHoc = await _khoaHocRepository.GetSingleByIdAsync(chuongHoc.MaKhoaHoc);

                    KhoaHocViewModel khoaHocVm = _mapper.Map <KhoaHocViewModel>(khoaHoc);
                    khoaHocVm.DanhSachChuongHoc.RemoveAll(x => x == chuongHoc.Id);

                    khoaHoc = _mapper.Map <KhoaHoc>(khoaHocVm);
                    if (khoaHocVm.DanhSachChuongHoc.Count == 0)
                    {
                        khoaHoc.DanhSachChuongHoc = "";
                    }
                    await _khoaHocRepository.UpdateAsync(khoaHoc.Id, khoaHoc);
                }

                return(new ResponseEntity(StatusCodeConstants.OK, listId, MessageConstants.DELETE_SUCCESS));
            }
            catch (Exception ex)
            {
                return(new ResponseEntity(StatusCodeConstants.ERROR_SERVER, ex.Message));
            }
        }
        public async Task <ResponseEntity> UpdateCourseFromSeriesAsync(dynamic id, HashSet <dynamic> listId)
        {
            try
            {
                LoTrinh loTrinh = await _loTrinhRepository.GetSingleByIdAsync(id);

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

                var loTrinhVm = _mapper.Map <LoTrinhViewModel>(loTrinh);
                loTrinhVm.DanhSachKhoaHoc = listId.ToList();

                // Cập nhật lại danh sách khóa học của lộ trình
                loTrinh = _mapper.Map <LoTrinh>(loTrinhVm);
                loTrinh = await _loTrinhRepository.UpdateAsyncHasArrayNull(id, loTrinh);



                // Lấy ra danh sách thông tin các khóa học thuộc lộ trình sau khi cập nhật
                //var khoaHocs = (await _khoaHocRepository.GetMultiByIdAsync(listId.ToList()));
                List <KhoaHoc> khoaHocs = new List <KhoaHoc>();

                for (int i = 0; i < listId.Count(); i++)
                {
                    KhoaHoc kh = await _khoaHocRepository.GetSingleByIdAsync(listId.ElementAt(i));

                    khoaHocs.Add(kh);
                }


                // Cập nhật lại danh sách lộ trình của mỗi khóa học
                foreach (KhoaHoc item in khoaHocs)
                {
                    HashSet <dynamic> dsMaLoTrinh = new HashSet <dynamic>();
                    if (item.DanhSachLoTrinh != null)
                    {
                        dsMaLoTrinh = JsonConvert.DeserializeObject <HashSet <dynamic> >(item.DanhSachLoTrinh);
                    }
                    dsMaLoTrinh.Add(id);
                    item.DanhSachLoTrinh = JsonConvert.SerializeObject(dsMaLoTrinh);
                    await _khoaHocRepository.UpdateAsync(item.Id, item);
                }

                // Convert về đối tượng ThongTinLoTrinhViewModel
                var modelVm = _mapper.Map <ThongTinLoTrinhViewModel>(loTrinh);
                modelVm.ThongTinKhoaHoc = _mapper.Map <List <KhoaHocViewModel> >(khoaHocs);

                return(new ResponseEntity(StatusCodeConstants.OK, modelVm));
            }
            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));
            }
        }