Exemple #1
0
        public async Task <List <SystemActivityDTO> > GetSystemActivity([FromQuery] SystemActivityReportFilterCriteria filter)
        {
            var command = new GetSystemActivityReportQuery(filter);
            var result  = await _queryProcessor.Process(command);

            return(result);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
 public GetSystemActivityReportQuery(SystemActivityReportFilterCriteria filterCriteria)
 {
     FilterCriteria = filterCriteria;
 }