public async Task <ActionResult> List() { var userNames = await _traceLogService.GetPerformedUsernames(); var model = new TraceLogSearchModel { AvailableUsernames = userNames.Select(u => new SelectListItem { Text = u, Value = u }).ToList() }; model.AvailableUsernames.Insert(0, new SelectListItem { Text = "All", Value = "" }); return(View("List", model)); }
public async Task List_PostDataSourceRequestAndTraceLogSearchModel_ReturnJsonResult() { // Arrange var traceLogService = Substitute.For <ITraceLogService>(); traceLogService.GetTraceLogs(Arg.Any <TraceLogPagedDataRequest>()).Returns(_traceLogs); var sut = new TraceLogsController(traceLogService); var request = new DataSourceRequest { Sorts = new List <SortDescriptor>() }; var model = new TraceLogSearchModel(); // Act var result = await sut.List(request, model) as JsonResult; // Assert Assert.IsNotNull(result); var dataSourceResult = (DataSourceResult)result.Data; var models = (IEnumerable <TraceLogModel>)dataSourceResult.Data; Assert.AreEqual(3, models.Count()); }
private TraceLogPagedDataRequest ParsePagedDataRequest(DataSourceRequest request, TraceLogSearchModel model) { var dataRequest = new TraceLogPagedDataRequest { Controller = model.Controller, Action = model.Action, Message = model.Message, PerformedBy = model.PerformedBy, 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) { TraceLogSortField sortField; if (!Enum.TryParse(sort.Member, out sortField)) { sortField = TraceLogSortField.PerformedOn; } dataRequest.SortField = sortField; dataRequest.SortOrder = sort.SortDirection == ListSortDirection.Ascending ? SortOrder.Ascending : SortOrder.Descending; } return(dataRequest); }
public async Task <ActionResult> List([DataSourceRequest] DataSourceRequest request, TraceLogSearchModel model) { var dataRequest = ParsePagedDataRequest(request, model); var entities = await _traceLogService.GetTraceLogs(dataRequest); var models = entities.Select(x => x.ToModel()).ToList(); var result = new DataSourceResult { Data = models.ToList(), Total = entities.TotalCount }; return(Json(result)); }