public async Task <List <SystemActivityDTO> > GetSystemActivity([FromQuery] SystemActivityReportFilterCriteria filter) { var command = new GetSystemActivityReportQuery(filter); var result = await _queryProcessor.Process(command); return(result); }
public async void given_GetSystemActivityReportQuery_queryprocessor_should_get_same_query_created_in_controller() { //Assemble var mockAgg = new UserControllerMockAggregate(); var input = new SystemActivityReportFilterCriteria(); mockAgg.setup_processor_to_verify_getSystemActivityReportQueries_are_the_same(); var controller = mockAgg.CreateUserController(); //Apply var result = await controller.GetSystemActivity(input); //Assert //Assert.Equal(query, mockAgg.PermissionQuery); Assert.IsType <List <SystemActivityDTO> >(result); }
private IQueryable <SystemActivityProjection> Filter(SystemActivityReportFilterCriteria criteria) { IQueryable <SystemActivityProjection> query = _context.SystemActivityProjection; if (criteria.PermissionId != Guid.Empty) { query = query.Where(a => a.PermissionId == criteria.PermissionId); } if (!String.IsNullOrWhiteSpace(criteria.SearchTerms)) { criteria.SearchTerms = criteria.SearchTerms.ToLower(); query = query.Where(a => a.ByFullName.ToLower().Contains(criteria.SearchTerms) || a.ForFullName.ToLower().Contains(criteria.SearchTerms) || a.PermissionName.ToLower().Contains(criteria.SearchTerms)); } if (criteria.SortDirection == "DSC") { if (criteria.SortField == "ForFullName") { query = query.OrderByDescending(a => a.ForFullName).ThenBy(a => a.Timestamp); } else if (criteria.SortField == "ByFullName") { query = query.OrderByDescending(a => a.ByFullName).ThenBy(a => a.Timestamp); } else if (criteria.SortField == "PermissionName") { query = query.OrderByDescending(a => a.PermissionName).ThenBy(a => a.Timestamp); } else if (criteria.SortField == "Timestamp") { query = query.OrderByDescending(a => a.Timestamp); } else { query = query.OrderByDescending(a => a.Timestamp); } } else if (criteria.SortDirection == "ASC") { if (criteria.SortField == "ForFullName") { query = query.OrderBy(a => a.ForFullName).ThenBy(a => a.Timestamp); } else if (criteria.SortField == "ByFullName") { query = query.OrderBy(a => a.ByFullName).ThenBy(a => a.Timestamp); } else if (criteria.SortField == "PermissionName") { query = query.OrderBy(a => a.PermissionName).ThenBy(a => a.Timestamp); } else if (criteria.SortField == "Timestamp") { query = query.OrderBy(a => a.Timestamp); } else { query = query.OrderBy(a => a.Timestamp); } } else { query = query.OrderByDescending(a => a.Timestamp); } //return all actions within a range, default is time 0 and returns all events query = query.Where(a => a.Timestamp.ToLocalTime() >= criteria.StartDate); //when querying, enter a local time, this will take care of conversion from utc to local if (criteria.EndDate != null) { query = query.Where(a => a.Timestamp.ToLocalTime() <= criteria.EndDate); } return(query); }
public GetSystemActivityReportQuery(SystemActivityReportFilterCriteria filterCriteria) { FilterCriteria = filterCriteria; }