Ejemplo n.º 1
0
        public IActionResult GetSessions([FromQuery] DateTime?start, [FromQuery] DateTime?end, [FromQuery] int?crn, [FromQuery] string email, [FromQuery] int page = 1)
        {
            var resultSet = _sessionRepo.GetAll();

            if (start.HasValue)
            {
                resultSet = resultSet.Where(x => x.InTime.Date >= start.Value.Date);
            }
            if (end.HasValue)
            {
                resultSet = resultSet.Where(x => x.OutTime.GetValueOrDefault(end.Value).Date <= end.Value.Date);
            }
            if (crn.HasValue)
            {
                resultSet = resultSet.Where(x => x.SessionClasses.Any(c => c.ClassId == crn.Value));
            }
            if (!string.IsNullOrEmpty(email))
            {
                resultSet = resultSet.Where(x => x.Person.Email == email);
            }
            var sessionsDisplay = resultSet.Select(x => _mapper.Map <SessionDisplayDTO>(x));
            var pageResult      = new Paging <SessionDisplayDTO>(page, sessionsDisplay);

            return(Ok(pageResult));
        }
Ejemplo n.º 2
0
        /// <summary>Execute signing out all session that have not been signed out</summary>
        /// signs them out 2 hours after their inTime
        public async Task Execute(IJobExecutionContext context)
        {
            var signIns = _iRepo.GetAll(x => x.OutTime == null && x.InTime != null);

            foreach (var signIn in signIns)
            {
                signIn.OutTime = signIn.InTime.AddHours(2);
                await _iRepo.Update(signIn);
            }
        }
Ejemplo n.º 3
0
 public IActionResult Get([FromQuery] DateTime start, [FromQuery] DateTime end)
 {
     return(Ok(ReportsBusinessLogic.WeeklyVisits(_sessionRepo.GetAll(), start, end)));
 }