Exemple #1
0
        public IViewComponentResult Invoke(string venue, string date, string time)
        {
            /*
             *	Select s.SeatID, s.TimeClaimed, c.CandidateID, c.Name,  c.Status
             *	From Seat s, Test t, Candidate c
             *	Where c.TestID = t.TestID AND
             *	s.TestID = t.TestID AND
             *	s.CandidateID = c.CandidateID AND
             *	t.Venue = 'British Council Kuala Lumpur' AND
             *	t.Date = CAST('2020-12-18 11:00:00' as datetime2)
             */

            var i = 0;
            List <CandidateAttendanceViewModel> TestAttendance = new List <CandidateAttendanceViewModel>();

            if (date != "" && time != "")
            {
                var query = (from s in _context.Seats
                             join t in _context.Tests on s.TestID equals t.TestID
                             join c in _context.Candidates on s.CandidateID equals c.CandidateID
                             where t.Venue == venue
                             where t.Date.Date == DateTime.Parse(date).Date
                             where t.Time.Hour == DateTime.Parse(time).Hour
                             select new
                {
                    s.SeatID,
                    s.TimeClaimed,
                    c.CandidateID,
                    c.Name,
                    c.Status
                }).ToList();

                foreach (var item in query)
                {
                    i++;
                    CandidateAttendanceViewModel attd = new CandidateAttendanceViewModel
                    {
                        Index          = i,
                        Seat           = item.SeatID,
                        TimeRegistered = item.TimeClaimed.GetValueOrDefault().ToString("dd/MM/yyyy hh:mm tt"),
                        CandidateID    = item.CandidateID,
                        CandidateName  = item.Name,
                        Status         = item.Status
                    };
                    TestAttendance.Add(attd);
                }
            }

            return(View(TestAttendance));
        }
        public IActionResult PrintAttendanceReport(string venue, string date, string time)
        {
            int i            = 0;
            var AttdReportVM = new PrintAttendanceReportViewModel();
            List <CandidateAttendanceViewModel> Attd = new List <CandidateAttendanceViewModel>();

            if (venue != null && date != null && time != null)
            {
                var query = (from s in _context.Seats
                             join t in _context.Tests on s.TestID equals t.TestID
                             join c in _context.Candidates on s.CandidateID equals c.CandidateID
                             where t.Venue == venue
                             where t.Date.Date == DateTime.Parse(date).Date
                             where t.Time.Hour == DateTime.Parse(time).Hour
                             select new
                {
                    s.SeatID,
                    s.TimeClaimed,
                    c.CandidateID,
                    c.Name,
                    c.Status
                }).ToList();

                foreach (var item in query)
                {
                    i++;
                    CandidateAttendanceViewModel attd = new CandidateAttendanceViewModel
                    {
                        Index          = i,
                        Seat           = item.SeatID,
                        TimeRegistered = item.TimeClaimed.GetValueOrDefault().ToString("dd/MM/yyyy hh:mm tt"),
                        CandidateID    = item.CandidateID,
                        CandidateName  = item.Name,
                        Status         = item.Status
                    };
                    Attd.Add(attd);
                }
                AttdReportVM.Venue = venue;
                AttdReportVM.Date  = date;
                AttdReportVM.Time  = time;
                AttdReportVM.CandidateAttendanceViewModels = Attd;
            }
            return(View(AttdReportVM));
        }