Beispiel #1
0
        public async Task <IPagedList <Log> > Get([FromQuery] LogSearchViewModel viewModel)
        {
            await AuthorizeReadAsync(LogFunctionName);

            var from = viewModel.From ?? DateTime.Now.AddDays(-1);
            var to   = viewModel.To ?? DateTime.Now;

            return(await _logService.GetPagedListAsync(
                       from.StartOfDayUtc(),
                       to.EndOfDayUtc(),
                       viewModel.Levels,
                       viewModel.Page,
                       viewModel.Size));
        }
        public async Task <IActionResult> List()
        {
            var availableLevels = (await _logRepository.GetLevels())
                                  .Select(l => new SelectListItem {
                Text = l, Value = l
            })
                                  .ToList();

            availableLevels.Insert(0, new SelectListItem {
                Text = "All", Value = ""
            });
            var model = new LogSearchViewModel {
                AvailableLevels = availableLevels
            };

            return(View("List", model));
        }
        public async Task List_PostDataSourceRequestAndLogSearchModel_ReturnJsonResult()
        {
            // Arrange
            var mockLogRepository = new Mock <ILogRepository>();

            mockLogRepository.Setup(x => x.GetLogs(It.IsAny <LogPagedDataRequest>())).ReturnsAsync(_logs);
            var sut = new LogsController(mockLogRepository.Object, _mapper);

            var request = new DataSourceRequest {
                Sorts = new List <SortDescriptor>()
            };
            var model = new LogSearchViewModel();

            // Act
            IActionResult result = await sut.List(request, model);

            // Assert
            JsonResult       jsonResult       = Assert.IsType <JsonResult>(result);
            DataSourceResult dataSourceResult = Assert.IsType <DataSourceResult>(jsonResult.Value);
            var models = Assert.IsType <List <LogViewModel> >(dataSourceResult.Data);

            Assert.Equal(4, models.Count);
        }
        private LogPagedDataRequest ParsePagedDataRequest(DataSourceRequest request, LogSearchViewModel model)
        {
            var dataRequest = new LogPagedDataRequest
            {
                Level     = model.SelectedLevel,
                Message   = model.Message,
                Logger    = model.Logger,
                Callsite  = model.Callsite,
                Exception = model.Exception,
                PageIndex = request.Page - 1,
                PageSize  = request.PageSize
            };

            if (model.FromDate.HasValue)
            {
                dataRequest.FromDate = model.FromDate.Value;
            }

            if (model.ToDate.HasValue)
            {
                dataRequest.ToDate = model.ToDate.Value.ToEndOfDay();
            }

            SortDescriptor sort = request.Sorts.FirstOrDefault();

            if (sort != null)
            {
                LogSortField sortField;
                if (!Enum.TryParse(sort.Member, out sortField))
                {
                    sortField = LogSortField.Logged;
                }
                dataRequest.SortField = sortField;
                dataRequest.SortOrder = sort.SortDirection == ListSortDirection.Ascending ? SortOrder.Ascending : SortOrder.Descending;
            }
            return(dataRequest);
        }
        public async Task <IActionResult> List([DataSourceRequest] DataSourceRequest request, LogSearchViewModel model)
        {
            var dataRequest = ParsePagedDataRequest(request, model);
            var entities    = await _logRepository.GetLogs(dataRequest);

            var models = entities.Select(l => _mapper.Map <Core.Domains.Log, LogViewModel>(l)).ToList();
            var result = new DataSourceResult {
                Data = models.ToList(), Total = entities.TotalCount
            };

            return(Json(result));
        }