示例#1
0
        public void SettingsSerializationCanRoundTrip()
        {
            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 StepsTakenFilter.FilterSettings();

            settingsSource.StepProgramGuid = StepsTests.Constants.ProgramSacramentsGuid;

            settingsSource.StepTypeGuids = new List <Guid> {
                StepsTests.Constants.StepTypeBaptismGuid, StepsTests.Constants.StepTypeConfirmationGuid, StepsTests.Constants.StepTypeConfessionGuid
            };
            settingsSource.StepStatusGuids = new List <Guid> {
                StepsTests.Constants.StatusSacramentsSuccessGuid, StepsTests.Constants.StatusSacramentsPendingGuid
            };

            settingsSource.StartedInPeriod   = startPeriod;
            settingsSource.CompletedInPeriod = endPeriod;

            var settingsString = settingsSource.ToSelectionString();

            var settingsTarget = new StepsTakenFilter.FilterSettings(settingsString);

            Assert.AreEqual(StepsTests.Constants.ProgramSacramentsGuid, settingsTarget.StepProgramGuid);

            Assert.AreEqual(StepsTests.Constants.StepTypeBaptismGuid, settingsTarget.StepTypeGuids[0]);
            Assert.AreEqual(StepsTests.Constants.StepTypeConfirmationGuid, settingsTarget.StepTypeGuids[1]);
            Assert.AreEqual(StepsTests.Constants.StepTypeConfessionGuid, settingsTarget.StepTypeGuids[2]);

            Assert.AreEqual(StepsTests.Constants.StatusSacramentsSuccessGuid, settingsTarget.StepStatusGuids[0]);
            Assert.AreEqual(StepsTests.Constants.StatusSacramentsPendingGuid, settingsTarget.StepStatusGuids[1]);

            Assert.AreEqual(startPeriod, settingsTarget.StartedInPeriod);
            Assert.AreEqual(endPeriod, settingsTarget.CompletedInPeriod);
        }
示例#2
0
        /// <summary>
        /// Create a Person Query using the StepsTaken filter with the specified settings.
        /// </summary>
        /// <param name="settings"></param>
        /// <returns></returns>
        private IQueryable <IEntity> GetPersonQueryWithStepsTakenFilter(StepsTakenFilter.FilterSettings settings)
        {
            var settingsFilter = new StepsTakenFilter();

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