Example #1
0
        public void StepsRelatedDataViewFilterShouldNotReturnPersonWithNoRelatedSteps()
        {
            var settings = new StepDataViewFilter.FilterSettings();

            // Filter for DataView="Steps Completed in 2001";
            settings.DataViewGuid = TestGuids.Steps.DataViewStepsCompleted2001Guid;

            var personQuery = GetPersonQueryWithStepDataViewFilter(settings);

            var results = personQuery.ToList();

            // Verify Ben Jones not found - Alpha Attendee in 2015.
            Assert.That.IsFalse(results.Any(x => x.Guid == TestGuids.Steps.BenJonesPersonGuid));
        }
Example #2
0
        public void StepsRelatedDataViewFilterShouldReturnPersonWithRelatedSteps()
        {
            var settings = new StepDataViewFilter.FilterSettings();

            // Filter for DataView="Steps Completed in 2001";
            settings.DataViewGuid = TestGuids.Steps.DataViewStepsCompleted2001Guid;

            var personQuery = GetPersonQueryWithStepDataViewFilter(settings);

            var results = personQuery.ToList();

            // Verify Ted Decker found - Baptised in 2001.
            Assert.That.IsTrue(results.Any(x => x.Guid == TestGuids.Steps.TedDeckerPersonGuid));
        }
Example #3
0
        public void StepsRelatedDataViewFilterSettingsSerializationCanRoundTrip()
        {
            var startPeriod = new TimePeriod(new DateTime(2019, 2, 1), new DateTime(2019, 3, 1));
            var endPeriod   = new TimePeriod(new DateTime(2019, 4, 1), new DateTime(2019, 5, 1));

            var settingsSource = new StepDataViewFilter.FilterSettings();

            settingsSource.DataViewGuid = TestGuids.Steps.ProgramSacramentsGuid;

            var settingsString = settingsSource.ToSelectionString();

            var settingsTarget = new StepDataViewFilter.FilterSettings(settingsString);

            Assert.That.AreEqual(TestGuids.Steps.ProgramSacramentsGuid, settingsTarget.DataViewGuid);
        }
Example #4
0
        /// <summary>
        /// Create a Person Query using the StepDataViewFilter with the specified settings.
        /// </summary>
        /// <param name="settings"></param>
        /// <returns></returns>
        private IQueryable <IEntity> GetPersonQueryWithStepDataViewFilter(StepDataViewFilter.FilterSettings settings)
        {
            var settingsFilter = new StepDataViewFilter();

            var dataContext = new RockContext();

            var personService = new PersonService(dataContext);

            var parameterExpression = personService.ParameterExpression;

            var predicate = settingsFilter.GetExpression(typeof(Rock.Model.Person), personService, parameterExpression, settings.ToSelectionString());

            var personQuery = GetFilteredEntityQuery <Person>(dataContext, predicate, parameterExpression);

            return(personQuery);
        }