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