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)); }