public JsonResult LocTKBTHeoTuan(string tuan)
        {
            if (Session["MaGV"] != null)
            {
                MonHocBLL           contextMH = new MonHocBLL();
                SupportThoiKhoaBieu spTKB     = new SupportThoiKhoaBieu();
                GiangVienBLL        contextSV = new GiangVienBLL();
                KhoaBLL             contextK  = new KhoaBLL();
                GiangVien           giangVien = contextSV.GetById(Session["MaGV"].ToString().Trim());
                giangVien.Khoa = contextK.GetById(giangVien.MaKhoa);

                ViewData["TrinhDo"]  = giangVien.TrinhDo;
                ViewData["Khoa"]     = giangVien.Khoa.TenKhoa;
                ViewData["GioiTinh"] = giangVien.GioiTinh;
                ViewData["Email"]    = giangVien.Email;

                GiangVienModel gvModel    = new GiangVienModel();
                LopTinChiBLL   contextLTC = new LopTinChiBLL();
                gvModel.LopTinChis = contextLTC.GetByMaGV(giangVien.MaGV);

                List <SupportThoiKhoaBieu> lstSPTKB = spTKB.GetListSPTKB(tuan, gvModel.LopTinChis);
                return(Json(new { ListData = lstSPTKB }, JsonRequestBehavior.AllowGet));
            }
            return(Json(new { msg = "Bạn không có quyền xem lịch giảng!" }));
        }
        public ActionResult DangKyMonHoc()
        {
            string           maSV       = Session["MaSV"].ToString().Trim();
            KhoaBLL          contextK   = new KhoaBLL();
            LopTinChiBLL     contextLTC = new LopTinChiBLL();
            List <LopTinChi> lstLTC     = contextLTC.GetAll();

            MonHocBLL    contextMH = new MonHocBLL();
            GiangVienBLL contextGV = new GiangVienBLL();
            //  chỉ cho sinh viên đăng ký lớp đang mở
            List <LopTinChiModel> listLTCModel = new List <LopTinChiModel>();

            foreach (LopTinChi ltc in lstLTC)
            {
                var query = ltc.SinhViens.Where(x => x.MaSV == maSV).FirstOrDefault();
                if (query == null)
                {
                    if (ltc.TrangThai == true && ltc.SinhViens.Count < 50)
                    {
                        GiangVien      giangVien = contextGV.GetById(ltc.MaGV);
                        MonHoc         monHoc    = contextMH.GetById(ltc.MaMonHoc);
                        LopTinChiModel ltcModel  = new LopTinChiModel()
                        {
                            MaLopTC        = ltc.MaLopTC,
                            TrangThai      = ltc.TrangThai,
                            MaGV           = ltc.MaGV,
                            MaMonHoc       = ltc.MaMonHoc,
                            Nhom           = ltc.Nhom,
                            NienKhoa       = ltc.NienKhoa,
                            GiangVienModel = new GiangVienModel()
                            {
                                MaGV       = giangVien.MaGV,
                                Email      = giangVien.Email,
                                GioiTinh   = giangVien.GioiTinh,
                                HoVaTenLot = giangVien.HoVaTenLot,
                                MaKhoa     = giangVien.MaKhoa,
                                MatKhau    = giangVien.MatKhau,
                                NgaySinh   = giangVien.NgaySinh,
                                SDT        = giangVien.SDT,
                                TenGV      = giangVien.TenGV,
                                TrinhDo    = giangVien.TrinhDo
                            },
                            MonHoc = new MonHocModel
                            {
                                MaMH             = monHoc.MaMH,
                                SoTinChiLyThuyet = monHoc.SoTinChiLyThuyet,
                                SoTinChiThucHanh = monHoc.SoTinChiThucHanh,
                                TenMH            = monHoc.TenMH
                            }
                        };
                        listLTCModel.Add(ltcModel);
                    }
                }
            }
            ViewBag.Khoa = new SelectList(contextK.GetAll(), "MaKhoa", "TenKhoa");
            return(View(listLTCModel));
        }
        public ActionResult Index()
        {
            Date            dt         = new Date();
            DateTime        dtNow      = DateTime.UtcNow;
            ThoiKhoaBieuBLL contextTKB = new ThoiKhoaBieuBLL();
            LopTinChiBLL    contextLTC = new LopTinChiBLL();
            GiangVienBLL    contextGV  = new GiangVienBLL();
            KhoaBLL         contextK   = new KhoaBLL();
            GiangVien       giangVien  = contextGV.GetById(Session["MaGV"].ToString().Trim());

            giangVien.Khoa = contextK.GetById(giangVien.MaKhoa);

            ViewData["TrinhDo"]  = giangVien.TrinhDo;
            ViewData["Khoa"]     = giangVien.Khoa.TenKhoa;
            ViewData["GioiTinh"] = giangVien.GioiTinh;
            ViewData["Email"]    = giangVien.Email;

            // lấy danh sách tuần của năm hiện tại
            List <string> lstTuan    = dt.GetListDate(dtNow.Year);
            List <string> lstTuanNew = dt.GetListDate(dtNow.Year + 1);

            //gán list các tuần vào selectList
            List <SelectListItem> weeks = lstTuan.Concat(lstTuanNew).Select(x => new SelectListItem()
            {
                Value = x, Text = x
            }).ToList();
            int tuan = 0;

            for (int i = 0; i < lstTuan.Count; i++)
            {
                // Lấy datetime từ list Tuần và format về "dd/mm/yy"
                DateTime tempDTStart = DateTime.Parse(lstTuan[i].Split('-')[1], new CultureInfo("en-US"));
                DateTime tempDTEnd   = DateTime.Parse(lstTuan[i].Split('-')[3], new CultureInfo("en-US"));
                // kiểm tra ngày hiện tại có thuộc tuần i không, nếu có lưu lại và thoát vòng lặp
                if (dtNow.DayOfYear >= tempDTStart.DayOfYear && dtNow.DayOfYear <= tempDTEnd.DayOfYear)
                {
                    tuan = i;
                    break;
                }
            }
            //Gán list tuần vào viewbag
            ViewBag.Weeks       = new SelectList(weeks, "Text", "Value", tuan);
            ViewBag.WeekCurrent = lstTuan[tuan];

            SupportThoiKhoaBieu spTKB          = new SupportThoiKhoaBieu();
            GiangVienModel      giangVienModel = new GiangVienModel();

            giangVienModel.LopTinChis = contextLTC.GetByMaGV(giangVien.MaGV);
            //lọc các lớp tín chỉ đang mở và có thời khóa biểu trong tuần hiện tại.
            List <SupportThoiKhoaBieu> lstSPTKB = spTKB.GetListSPTKB(lstTuan[tuan], giangVienModel.LopTinChis);

            return(View(lstSPTKB));
        }
        // GET: Admin/GiangViens/Delete/5
        // [SessionCheck]
        public ActionResult Delete(string id)
        {
            KhoaBLL contextKhoa = new KhoaBLL();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            GiangVien giangVien = contextGV.GetById(id);

            if (giangVien == null)
            {
                return(HttpNotFound());
            }
            giangVien.Khoa = contextKhoa.GetById(giangVien.MaKhoa);
            return(View(giangVien));
        }
        public JsonResult LocTheoNieKhoaHocKy(string nienKhoa, int hocky)
        {
            string maSV = Session["MaSV"].ToString().Trim();

            if (string.IsNullOrEmpty(nienKhoa) || hocky < 0 || hocky > 3)
            {
                return(Json(new { msg = "FALSE" }));
            }
            KhoaBLL          contextK   = new KhoaBLL();
            LopTinChiBLL     contextLTC = new LopTinChiBLL();
            List <LopTinChi> lstLTC     = contextLTC.GetAll();

            NienKhoaHocKyBLL      contextNKHK  = new NienKhoaHocKyBLL();
            MonHocBLL             contextMH    = new MonHocBLL();
            GiangVienBLL          contextGV    = new GiangVienBLL();
            List <LopTinChiModel> listLTCModel = new List <LopTinChiModel>();

            foreach (LopTinChi ltc in lstLTC)
            {
                NienKhoaHocKy nkhk  = contextNKHK.GetById(ltc.NienKhoa);
                var           query = ltc.SinhViens.Where(x => x.MaSV == maSV).FirstOrDefault();
                if (query == null)
                {
                    if (ltc.TrangThai == true && ltc.NienKhoa == nienKhoa && nkhk.HocKy == hocky && ltc.SinhViens.Count < 50)
                    {
                        GiangVien      giangVien = contextGV.GetById(ltc.MaGV);
                        MonHoc         monHoc    = contextMH.GetById(ltc.MaMonHoc);
                        LopTinChiModel ltcModel  = new LopTinChiModel()
                        {
                            MaLopTC        = ltc.MaLopTC,
                            TrangThai      = ltc.TrangThai,
                            MaGV           = ltc.MaGV,
                            MaMonHoc       = ltc.MaMonHoc,
                            Nhom           = ltc.Nhom,
                            NienKhoa       = ltc.NienKhoa,
                            GiangVienModel = new GiangVienModel()
                            {
                                MaGV       = giangVien.MaGV,
                                Email      = giangVien.Email,
                                GioiTinh   = giangVien.GioiTinh,
                                HoVaTenLot = giangVien.HoVaTenLot,
                                MaKhoa     = giangVien.MaKhoa,
                                MatKhau    = giangVien.MatKhau,
                                NgaySinh   = giangVien.NgaySinh,
                                SDT        = giangVien.SDT,
                                TenGV      = giangVien.TenGV,
                                TrinhDo    = giangVien.TrinhDo
                            },
                            MonHoc = new MonHocModel
                            {
                                MaMH             = monHoc.MaMH,
                                SoTinChiLyThuyet = monHoc.SoTinChiLyThuyet,
                                SoTinChiThucHanh = monHoc.SoTinChiThucHanh,
                                TenMH            = monHoc.TenMH
                            }
                        };
                        listLTCModel.Add(ltcModel);
                    }
                }
            }

            ViewBag.Khoa = new SelectList(contextK.GetAll(), "MaKhoa", "TenKhoa");
            if (listLTCModel.Count > 0)
            {
                return(Json(new { msg = listLTCModel }));
            }
            return(Json(new { msg = "FALSE" }));
        }