示例#1
0
        public async Task <IActionResult> Index(int hocKy, int namHoc, int pageIndex = 1, int pageSize = 1000)
        {
            if (TempData["result"] != null)
            {
                ViewBag.SuccessMessage = TempData["result"];
            }

            var request = new LopHocPhanManagePagingRequest()
            {
                HocKy     = hocKy,
                NamHoc    = namHoc,
                PageIndex = pageIndex,
                PageSize  = pageSize
            };
            var data = await _lopHocPhanApiClient.GetSchedule(request);

            ViewBag.HocKy  = hocKy;
            ViewBag.NamHoc = namHoc;

            var requestRoom = new PhongManagePagingRequest()
            {
                PageIndex = 1,
                PageSize  = 1000
            };
            var rooms = await _phongApiClient.GetAllPaging(requestRoom);

            int RoomCount = rooms.Items.Count();

            ViewBag.Rooms     = rooms.Items;
            ViewBag.RoomCount = RoomCount;

            return(View(data));
        }
        public async Task <PagedResult <LopHocPhanViewModel> > GetSchedule(LopHocPhanManagePagingRequest request)
        {
            var query = from lhp in _context.LopHocPhans
                        join mh in _context.MonHocs on lhp.ID_MonHoc equals mh.ID
                        join gv in _context.GiangViens on lhp.ID_GiangVien equals gv.ID
                        orderby lhp.ID
                        select new { lhp, mh, gv };


            query = query.Where(
                x => x.lhp.HK_HocKy.Equals(request.HocKy) &&
                x.lhp.HK_NamHoc.Equals(request.NamHoc));


            int totalRow = await query.CountAsync();

            var lopHocPhans = await query
                              .Select(x => new LopHocPhanViewModel()
            {
                ID           = x.lhp.ID,
                BuoiHoc      = x.lhp.BuoiHoc,
                NgayHoc      = x.lhp.NgayHoc,
                ID_GiangVien = x.lhp.ID_GiangVien,
                ID_MonHoc    = x.lhp.ID_MonHoc,
                ID_Phong     = x.lhp.ID_Phong,
                HK_HocKy     = x.lhp.HK_HocKy,
                HK_NamHoc    = x.lhp.HK_NamHoc,
                MonHoc       = x.mh,
                GiangVien    = x.gv
            }).ToListAsync();

            var pagedResult = new PagedResult <LopHocPhanViewModel>()
            {
                TotalRecords = totalRow,
                PageIndex    = 1,
                PageSize     = 1000,
                Items        = lopHocPhans
            };

            return(pagedResult);
        }
        public async Task <PagedResult <LopHocPhanViewModel> > GetAllPaging(LopHocPhanManagePagingRequest request)
        {
            var query = from lhp
                        in _context.LopHocPhans
                        select new { lhp };

            if (!string.IsNullOrEmpty(request.Keyword))
            {
                query = query.Where(
                    x => x.lhp.ID_GiangVien.Contains(request.Keyword) ||
                    x.lhp.ID.Contains(request.Keyword) ||
                    x.lhp.ID_MonHoc.Contains(request.Keyword));
            }

            int totalRow = await query.CountAsync();

            var data = await query.Skip((request.PageIndex - 1) *request.PageSize)
                       .Take(request.PageSize)
                       .Select(x => new LopHocPhanViewModel()
            {
                ID           = x.lhp.ID,
                BuoiHoc      = x.lhp.BuoiHoc,
                NgayHoc      = x.lhp.NgayHoc,
                ID_GiangVien = x.lhp.ID_GiangVien,
                ID_MonHoc    = x.lhp.ID_MonHoc,
                ID_Phong     = x.lhp.ID_Phong,
                HK_HocKy     = x.lhp.HK_HocKy,
                HK_NamHoc    = x.lhp.HK_NamHoc,
            }).ToListAsync();

            var pagedResult = new PagedResult <LopHocPhanViewModel>()
            {
                TotalRecords = totalRow,
                PageIndex    = request.PageIndex,
                PageSize     = request.PageSize,
                Items        = data
            };

            return(pagedResult);
        }
        public async Task <PagedResult <LopHocPhanViewModel> > GetSchedule(LopHocPhanManagePagingRequest request)
        {
            var sessions = _httpContextAccessor
                           .HttpContext
                           .Session
                           .GetString(SystemConstants.AppSettings.Token);

            var client = _httpClientFactory.CreateClient();

            client.BaseAddress = new Uri(_configuration[SystemConstants.AppSettings.BaseAddress]);
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", sessions);

            var response = await client.GetAsync(
                $"/api/lophocphans/getschedule?hocky={request.HocKy}" +
                $"&namhoc={request.NamHoc}"
                );

            var body = await response.Content.ReadAsStringAsync();

            var lopHocPhan = JsonConvert.DeserializeObject <PagedResult <LopHocPhanViewModel> >(body);

            return(lopHocPhan);
        }
        public async Task <IActionResult> GetSchedule([FromQuery] LopHocPhanManagePagingRequest request)
        {
            var lopHocPhan = await _lopHocPhanService.GetSchedule(request);

            return(Ok(lopHocPhan));
        }