コード例 #1
0
        public async Task <PagedList <Log> > GetPagedLogs(LogPaginationParams logPaginationParams)
        {
            var logs = await GetAll <Log>();

            logs = logs.Where(l => l.DateCreated >= logPaginationParams.DateFrom && l.DateCreated <= logPaginationParams.DateTo)
                   .OrderByDescending(l => l.Id);

            if (logPaginationParams.Level != 0)
            {
                logs = logs.Where(l => (int)l.Level == logPaginationParams.Level);
            }

            if (logPaginationParams.StatusCode != 0)
            {
                logs = logs.Where(l => l.StatusCode == logPaginationParams.StatusCode);
            }

            if (!string.IsNullOrEmpty(logPaginationParams.Message))
            {
                logs = logs.Where(l => l.Message.ToLower().Contains(logPaginationParams.Message.ToLower()));
            }

            if (!string.IsNullOrEmpty(logPaginationParams.UserName))
            {
                logs = logs.Where(l => l.User != null && l.User.UserName.ToLower().Contains(logPaginationParams.UserName.ToLower()));
            }

            return(PagedList <Log> .Create(logs.AsQueryable(), logPaginationParams.PageNumber, logPaginationParams.PageSize));
        }
コード例 #2
0
        public async Task <IActionResult> GetLogs([FromQuery] LogPaginationParams logPaginationParams)
        {
            var logs = await database.AdminRepository.GetPagedLogs(logPaginationParams);

            var logsToReturn = mapper.Map <ICollection <LogDetailsDto> >(logs);

            Response.AddPagination(logs.CurrentPage, logs.PageSize, logs.TotalCount, logs.TotalPages);

            return(Ok(logsToReturn));
        }