/// <summary> /// Saves the settings. /// </summary> private void SaveSettings() { // Save General Rock.Web.SystemSettings.SetValue(SystemSetting.GENDER_AUTO_FILL_CONFIDENCE, nbGenderAutoFill.Text); // Save Data Automation _reactivateSettings = new ReactivatePeople(); _inactivateSettings = new InactivatePeople(); _campusSettings = new UpdateFamilyCampus(); // Reactivate _reactivateSettings.IsEnabled = cbReactivatePeople.Checked; _reactivateSettings.IsLastContributionEnabled = cbLastContribution.Checked; _reactivateSettings.LastContributionPeriod = nbLastContribution.Text.AsInteger(); _reactivateSettings.IsAttendanceInServiceGroupEnabled = cbAttendanceInServiceGroup.Checked; _reactivateSettings.AttendanceInServiceGroupPeriod = nbAttendanceInServiceGroup.Text.AsInteger(); _reactivateSettings.IsRegisteredInAnyEventEnabled = cbRegisteredInAnyEvent.Checked; _reactivateSettings.RegisteredInAnyEventPeriod = nbRegisteredInAnyEvent.Text.AsInteger(); _reactivateSettings.IsAttendanceInGroupTypeEnabled = cbAttendanceInGroupType.Checked; _reactivateSettings.AttendanceInGroupType = rlbAttendanceInGroupType.SelectedValues.AsIntegerList(); _reactivateSettings.AttendanceInGroupTypeDays = nbAttendanceInGroupType.Text.AsInteger(); _reactivateSettings.IsSiteLoginEnabled = cbSiteLogin.Checked; _reactivateSettings.SiteLoginPeriod = nbSiteLogin.Text.AsInteger(); _reactivateSettings.IsPrayerRequestEnabled = cbPrayerRequest.Checked; _reactivateSettings.PrayerRequestPeriod = nbPrayerRequest.Text.AsInteger(); _reactivateSettings.IsPersonAttributesEnabled = cbPersonAttributes.Checked; _reactivateSettings.PersonAttributes = rlbPersonAttributes.SelectedValues.AsIntegerList(); _reactivateSettings.PersonAttributesDays = nbPersonAttributes.Text.AsInteger(); _reactivateSettings.IsIncludeDataViewEnabled = cbIncludeDataView.Checked; _reactivateSettings.IncludeDataView = dvIncludeDataView.SelectedValueAsInt(); _reactivateSettings.IsExcludeDataViewEnabled = cbExcludeDataView.Checked; _reactivateSettings.ExcludeDataView = dvExcludeDataView.SelectedValueAsInt(); _reactivateSettings.IsInteractionsEnabled = cbInteractions.Checked; foreach (RepeaterItem rItem in rInteractions.Items) { RockCheckBox isInterationTypeEnabled = rItem.FindControl("cbInterationType") as RockCheckBox; _reactivateSettings.Interactions = _reactivateSettings.Interactions ?? new List <InteractionItem>(); HiddenField interactionTypeId = rItem.FindControl("hfInteractionTypeId") as HiddenField; NumberBox lastInteractionDays = rItem.FindControl("nbInteractionDays") as NumberBox; var item = new InteractionItem(interactionTypeId.Value.AsGuid(), string.Empty) { IsInteractionTypeEnabled = isInterationTypeEnabled.Checked, LastInteractionDays = lastInteractionDays.Text.AsInteger() }; _reactivateSettings.Interactions.Add(item); } // Inactivate _inactivateSettings.IsEnabled = cbInactivatePeople.Checked; _inactivateSettings.IsNoLastContributionEnabled = cbNoLastContribution.Checked; _inactivateSettings.NoLastContributionPeriod = nbNoLastContribution.Text.AsInteger(); _inactivateSettings.IsNoAttendanceInGroupTypeEnabled = cbNoAttendanceInGroupType.Checked; _inactivateSettings.AttendanceInGroupType = rlbNoAttendanceInGroupType.SelectedValues.AsIntegerList(); _inactivateSettings.NoAttendanceInGroupTypeDays = nbNoAttendanceInGroupType.Text.AsInteger(); _inactivateSettings.IsNotRegisteredInAnyEventEnabled = cbNoRegistrationInAnyEvent.Checked; _inactivateSettings.NotRegisteredInAnyEventDays = nbNoRegistrationInAnyEvent.Text.AsInteger(); _inactivateSettings.IsNoSiteLoginEnabled = cbNoSiteLogin.Checked; _inactivateSettings.NoSiteLoginPeriod = nbNoSiteLogin.Text.AsInteger(); _inactivateSettings.IsNoPrayerRequestEnabled = cbNoPrayerRequest.Checked; _inactivateSettings.NoPrayerRequestPeriod = nbNoPrayerRequest.Text.AsInteger(); _inactivateSettings.IsNoPersonAttributesEnabled = cbNoPersonAttributes.Checked; _inactivateSettings.PersonAttributes = rlbNoPersonAttributes.SelectedValues.AsIntegerList(); _inactivateSettings.NoPersonAttributesDays = nbNoPersonAttributes.Text.AsInteger(); _inactivateSettings.IsNotInDataviewEnabled = cbNotInDataView.Checked; _inactivateSettings.NotInDataview = dvNotInDataView.SelectedValueAsInt(); _inactivateSettings.IsNoInteractionsEnabled = cbNoInteractions.Checked; _inactivateSettings.RecordsOlderThan = nbRecordsOlderThan.Text.AsInteger(); foreach (RepeaterItem rItem in rNoInteractions.Items) { RockCheckBox isInterationTypeEnabled = rItem.FindControl("cbInterationType") as RockCheckBox; _inactivateSettings.NoInteractions = _inactivateSettings.NoInteractions ?? new List <InteractionItem>(); HiddenField interactionTypeId = rItem.FindControl("hfInteractionTypeId") as HiddenField; NumberBox lastInteractionDays = rItem.FindControl("nbNoInteractionDays") as NumberBox; var item = new InteractionItem(interactionTypeId.Value.AsGuid(), string.Empty) { IsInteractionTypeEnabled = isInterationTypeEnabled.Checked, LastInteractionDays = lastInteractionDays.Text.AsInteger() }; _inactivateSettings.NoInteractions.Add(item); } // Campus Update _campusSettings.IsEnabled = cbCampusUpdate.Checked; _campusSettings.IsMostFamilyAttendanceEnabled = cbMostFamilyAttendance.Checked; _campusSettings.MostFamilyAttendancePeriod = nbMostFamilyAttendance.Text.AsInteger(); _campusSettings.IsMostFamilyGivingEnabled = cbMostFamilyGiving.Checked; _campusSettings.MostFamilyGivingPeriod = nbMostFamilyGiving.Text.AsInteger(); _campusSettings.MostAttendanceOrGiving = ddlAttendanceOrGiving.SelectedValueAsEnum <CampusCriteria>(); _campusSettings.IsIgnoreIfManualUpdateEnabled = cbIgnoreIfManualUpdate.Checked; _campusSettings.IgnoreIfManualUpdatePeriod = nbIgnoreIfManualUpdate.Text.AsInteger(); _campusSettings.IsIgnoreCampusChangesEnabled = cbIgnoreCampusChanges.Checked; _campusSettings.IgnoreCampusChanges = _ignoreCampusChangeRows .Where(a => a.FromCampusId.HasValue && a.ToCampusId.HasValue) .Select(a => new IgnoreCampusChangeItem { FromCampus = a.FromCampusId.Value, ToCampus = a.ToCampusId.Value, BasedOn = a.CampusCriteria }) .ToList(); // Adult Children _adultChildrenSettings.IsEnabled = cbAdultChildren.Checked; _adultChildrenSettings.IsOnlyMoveGraduated = cbisMoveGraduated.Checked; _adultChildrenSettings.AdultAge = nbAdultAge.Text.AsIntegerOrNull() ?? 18; _adultChildrenSettings.ParentRelationshipId = rpParentRelationship.GroupRoleId; _adultChildrenSettings.SiblingRelationshipId = rpSiblingRelationship.GroupRoleId; _adultChildrenSettings.UseSameHomeAddress = cbSameAddress.Checked; _adultChildrenSettings.UseSameHomePhone = cbSamePhone.Checked; _adultChildrenSettings.WorkflowTypeIds = wfWorkflows.SelectedValuesAsInt().ToList(); _adultChildrenSettings.MaximumRecords = nbMaxRecords.Text.AsIntegerOrNull() ?? 200; // Update Connection Status _updatePersonConnectionStatus.IsEnabled = cbUpdatePersonConnectionStatus.Checked; _updatePersonConnectionStatus.ConnectionStatusValueIdDataviewIdMapping.Clear(); foreach (var item in rptPersonConnectionStatusDataView.Items.OfType <RepeaterItem>()) { HiddenField hfPersonConnectionStatusValueId = item.FindControl("hfPersonConnectionStatusValueId") as HiddenField; DataViewItemPicker dvpPersonConnectionStatusDataView = item.FindControl("dvpPersonConnectionStatusDataView") as DataViewItemPicker; _updatePersonConnectionStatus.ConnectionStatusValueIdDataviewIdMapping.AddOrReplace(hfPersonConnectionStatusValueId.Value.AsInteger(), dvpPersonConnectionStatusDataView.SelectedValueAsId()); } // Update Family Status _updateFamilyStatus.IsEnabled = cbUpdateFamilyStatus.Checked; _updateFamilyStatus.GroupStatusValueIdDataviewIdMapping.Clear(); foreach (var item in rptFamilyStatusDataView.Items.OfType <RepeaterItem>()) { HiddenField hfGroupStatusValueId = item.FindControl("hfGroupStatusValueId") as HiddenField; DataViewItemPicker dvpGroupStatusDataView = item.FindControl("dvpGroupStatusDataView") as DataViewItemPicker; _updateFamilyStatus.GroupStatusValueIdDataviewIdMapping.AddOrReplace(hfGroupStatusValueId.Value.AsInteger(), dvpGroupStatusDataView.SelectedValueAsId()); } Rock.Web.SystemSettings.SetValue(SystemSetting.DATA_AUTOMATION_REACTIVATE_PEOPLE, _reactivateSettings.ToJson()); Rock.Web.SystemSettings.SetValue(SystemSetting.DATA_AUTOMATION_INACTIVATE_PEOPLE, _inactivateSettings.ToJson()); Rock.Web.SystemSettings.SetValue(SystemSetting.DATA_AUTOMATION_CAMPUS_UPDATE, _campusSettings.ToJson()); Rock.Web.SystemSettings.SetValue(SystemSetting.DATA_AUTOMATION_ADULT_CHILDREN, _adultChildrenSettings.ToJson()); Rock.Web.SystemSettings.SetValue(SystemSetting.DATA_AUTOMATION_UPDATE_PERSON_CONNECTION_STATUS, _updatePersonConnectionStatus.ToJson()); Rock.Web.SystemSettings.SetValue(SystemSetting.DATA_AUTOMATION_UPDATE_FAMILY_STATUS, _updateFamilyStatus.ToJson()); }
private void SaveSettings() { // Save Data Automation _reactivateSettings = new ReactivatePeople(); _inactivateSettings = new InactivatePeople(); _campusSettings = new UpdateFamilyCampus(); //Reactivate _reactivateSettings.IsEnabled = cbReactivatePeople.Checked; _reactivateSettings.IsLastContributionEnabled = cbLastContribution.Checked; _reactivateSettings.LastContributionPeriod = nbLastContribution.Text.AsInteger(); _reactivateSettings.IsAttendanceInServiceGroupEnabled = cbAttendanceInServiceGroup.Checked; _reactivateSettings.AttendanceInServiceGroupPeriod = nbAttendanceInServiceGroup.Text.AsInteger(); _reactivateSettings.IsAttendanceInGroupTypeEnabled = cbAttendanceInGroupType.Checked; _reactivateSettings.AttendanceInGroupType = rlbAttendanceInGroupType.SelectedValues.AsIntegerList(); _reactivateSettings.AttendanceInGroupTypeDays = nbAttendanceInGroupType.Text.AsInteger(); _reactivateSettings.IsPrayerRequestEnabled = cbPrayerRequest.Checked; _reactivateSettings.PrayerRequestPeriod = nbPrayerRequest.Text.AsInteger(); _reactivateSettings.IsPersonAttributesEnabled = cbPersonAttributes.Checked; _reactivateSettings.PersonAttributes = rlbPersonAttributes.SelectedValues.AsIntegerList(); _reactivateSettings.PersonAttributesDays = nbPersonAttributes.Text.AsInteger(); _reactivateSettings.IsIncludeDataViewEnabled = cbIncludeDataView.Checked; _reactivateSettings.IncludeDataView = dvIncludeDataView.SelectedValueAsInt(); _reactivateSettings.IsExcludeDataViewEnabled = cbExcludeDataView.Checked; _reactivateSettings.ExcludeDataView = dvExcludeDataView.SelectedValueAsInt(); _reactivateSettings.IsInteractionsEnabled = cbInteractions.Checked; foreach (RepeaterItem rItem in rInteractions.Items) { RockCheckBox isInterationTypeEnabled = rItem.FindControl("cbInterationType") as RockCheckBox; if (isInterationTypeEnabled.Checked) { _reactivateSettings.Interactions = _reactivateSettings.Interactions ?? new List <InteractionItem>(); HiddenField interactionTypeId = rItem.FindControl("hfInteractionTypeId") as HiddenField; NumberBox lastInteractionDays = rItem.FindControl("nbInteractionDays") as NumberBox; var item = new InteractionItem(interactionTypeId.Value.AsGuid(), string.Empty) { IsInteractionTypeEnabled = true, LastInteractionDays = lastInteractionDays.Text.AsInteger() }; _reactivateSettings.Interactions.Add(item); } } //Inactivate _inactivateSettings.IsEnabled = cbInactivatePeople.Checked; _inactivateSettings.IsNoLastContributionEnabled = cbNoLastContribution.Checked; _inactivateSettings.NoLastContributionPeriod = nbNoLastContribution.Text.AsInteger(); _inactivateSettings.IsNoAttendanceInGroupTypeEnabled = cbNoAttendanceInGroupType.Checked; _inactivateSettings.AttendanceInGroupType = rlbNoAttendanceInGroupType.SelectedValues.AsIntegerList(); _inactivateSettings.NoAttendanceInGroupTypeDays = nbNoAttendanceInGroupType.Text.AsInteger(); _inactivateSettings.IsNoPrayerRequestEnabled = cbNoPrayerRequest.Checked; _inactivateSettings.NoPrayerRequestPeriod = nbNoPrayerRequest.Text.AsInteger(); _inactivateSettings.IsNoPersonAttributesEnabled = cbNoPersonAttributes.Checked; _inactivateSettings.PersonAttributes = rlbNoPersonAttributes.SelectedValues.AsIntegerList(); _inactivateSettings.NoPersonAttributesDays = nbNoPersonAttributes.Text.AsInteger(); _inactivateSettings.IsNotInDataviewEnabled = cbNotInDataView.Checked; _inactivateSettings.NotInDataview = dvNotInDataView.SelectedValueAsInt(); _inactivateSettings.IsNoInteractionsEnabled = cbNoInteractions.Checked; foreach (RepeaterItem rItem in rNoInteractions.Items) { RockCheckBox isInterationTypeEnabled = rItem.FindControl("cbInterationType") as RockCheckBox; if (isInterationTypeEnabled.Checked) { _inactivateSettings.NoInteractions = _inactivateSettings.NoInteractions ?? new List <InteractionItem>(); HiddenField interactionTypeId = rItem.FindControl("hfInteractionTypeId") as HiddenField; NumberBox lastInteractionDays = rItem.FindControl("nbNoInteractionDays") as NumberBox; var item = new InteractionItem(interactionTypeId.Value.AsGuid(), string.Empty) { IsInteractionTypeEnabled = true, LastInteractionDays = lastInteractionDays.Text.AsInteger() }; _inactivateSettings.NoInteractions.Add(item); } } //Campus Update _campusSettings.IsEnabled = cbCampusUpdate.Checked; _campusSettings.IsMostFamilyAttendanceEnabled = cbMostFamilyAttendance.Checked; _campusSettings.MostFamilyAttendancePeriod = nbMostFamilyAttendance.Text.AsInteger(); _campusSettings.IsMostFamilyGivingEnabled = cbMostFamilyGiving.Checked; _campusSettings.MostFamilyGivingPeriod = nbMostFamilyGiving.Text.AsInteger(); _campusSettings.MostAttendanceOrGiving = ddlAttendanceOrGiving.SelectedValueAsEnum <CampusCriteria>(); _campusSettings.IsIgnoreIfManualUpdateEnabled = cbIgnoreIfManualUpdate.Checked; _campusSettings.IgnoreIfManualUpdatePeriod = nbIgnoreIfManualUpdate.Text.AsInteger(); _campusSettings.IsIgnoreCampusChangesEnabled = cbIgnoreCampusChanges.Checked; _campusSettings.IgnoreCampusChanges = _ignoreCampusChangeRows .Where(a => a.FromCampusId.HasValue && a.ToCampusId.HasValue) .Select(a => new IgnoreCampusChangeItem { FromCampus = a.FromCampusId.Value, ToCampus = a.ToCampusId.Value, BasedOn = a.CampusCriteria }) .ToList(); // Adult Children _adultChildrenSettings.IsEnabled = cbAdultChildren.Checked; _adultChildrenSettings.AdultAge = nbAdultAge.Text.AsIntegerOrNull() ?? 18; _adultChildrenSettings.ParentRelationshipId = rpParentRelationship.GroupRoleId; _adultChildrenSettings.SiblingRelationshipId = rpSiblingRelationship.GroupRoleId; _adultChildrenSettings.UseSameHomeAddress = cbSameAddress.Checked; _adultChildrenSettings.UseSameHomePhone = cbSamePhone.Checked; _adultChildrenSettings.WorkflowTypeIds = wfWorkflows.SelectedValuesAsInt().ToList(); _adultChildrenSettings.MaximumRecords = nbMaxRecords.Text.AsIntegerOrNull() ?? 200; Rock.Web.SystemSettings.SetValue(SystemSetting.DATA_AUTOMATION_REACTIVATE_PEOPLE, _reactivateSettings.ToJson()); Rock.Web.SystemSettings.SetValue(SystemSetting.DATA_AUTOMATION_INACTIVATE_PEOPLE, _inactivateSettings.ToJson()); Rock.Web.SystemSettings.SetValue(SystemSetting.DATA_AUTOMATION_CAMPUS_UPDATE, _campusSettings.ToJson()); Rock.Web.SystemSettings.SetValue(SystemSetting.DATA_AUTOMATION_ADULT_CHILDREN, _adultChildrenSettings.ToJson()); }
/// <summary> /// Gets the settings. /// </summary> private void GetSettings() { // Get General Settings nbGenderAutoFill.Text = Rock.Web.SystemSettings.GetValue(SystemSetting.GENDER_AUTO_FILL_CONFIDENCE); // Get Data Automation Settings _reactivateSettings = Rock.Web.SystemSettings.GetValue(SystemSetting.DATA_AUTOMATION_REACTIVATE_PEOPLE).FromJsonOrNull <ReactivatePeople>() ?? new ReactivatePeople(); _inactivateSettings = Rock.Web.SystemSettings.GetValue(SystemSetting.DATA_AUTOMATION_INACTIVATE_PEOPLE).FromJsonOrNull <InactivatePeople>() ?? new InactivatePeople(); _campusSettings = Rock.Web.SystemSettings.GetValue(SystemSetting.DATA_AUTOMATION_CAMPUS_UPDATE).FromJsonOrNull <UpdateFamilyCampus>() ?? new UpdateFamilyCampus(); _adultChildrenSettings = Rock.Web.SystemSettings.GetValue(SystemSetting.DATA_AUTOMATION_ADULT_CHILDREN).FromJsonOrNull <MoveAdultChildren>() ?? new MoveAdultChildren(); _updatePersonConnectionStatus = Rock.Web.SystemSettings.GetValue(SystemSetting.DATA_AUTOMATION_UPDATE_PERSON_CONNECTION_STATUS).FromJsonOrNull <UpdatePersonConnectionStatus>() ?? new UpdatePersonConnectionStatus(); _updateFamilyStatus = Rock.Web.SystemSettings.GetValue(SystemSetting.DATA_AUTOMATION_UPDATE_FAMILY_STATUS).FromJsonOrNull <UpdateFamilyStatus>() ?? new UpdateFamilyStatus(); // Set Data Automation Controls // Reactivate cbReactivatePeople.Checked = _reactivateSettings.IsEnabled; pnlReactivatePeople.Enabled = _reactivateSettings.IsEnabled; cbLastContribution.Checked = _reactivateSettings.IsLastContributionEnabled; nbLastContribution.Text = _reactivateSettings.LastContributionPeriod.ToStringSafe(); cbAttendanceInServiceGroup.Checked = _reactivateSettings.IsAttendanceInServiceGroupEnabled; nbAttendanceInServiceGroup.Text = _reactivateSettings.AttendanceInServiceGroupPeriod.ToStringSafe(); cbRegisteredInAnyEvent.Checked = _reactivateSettings.IsRegisteredInAnyEventEnabled; nbRegisteredInAnyEvent.Text = _reactivateSettings.RegisteredInAnyEventPeriod.ToStringSafe(); cbAttendanceInGroupType.Checked = _reactivateSettings.IsAttendanceInGroupTypeEnabled; nbAttendanceInGroupType.Text = _reactivateSettings.AttendanceInGroupTypeDays.ToStringSafe(); rlbAttendanceInGroupType.SetValues(_reactivateSettings.AttendanceInGroupType ?? new List <int>()); cbSiteLogin.Checked = _reactivateSettings.IsSiteLoginEnabled; nbSiteLogin.Text = _reactivateSettings.SiteLoginPeriod.ToStringSafe(); cbPrayerRequest.Checked = _reactivateSettings.IsPrayerRequestEnabled; nbPrayerRequest.Text = _reactivateSettings.PrayerRequestPeriod.ToStringSafe(); cbPersonAttributes.Checked = _reactivateSettings.IsPersonAttributesEnabled; nbPersonAttributes.Text = _reactivateSettings.PersonAttributesDays.ToStringSafe(); rlbPersonAttributes.SetValues(_reactivateSettings.PersonAttributes ?? new List <int>()); cbIncludeDataView.Checked = _reactivateSettings.IsIncludeDataViewEnabled; dvIncludeDataView.EntityTypeId = EntityTypeCache.Get(typeof(Rock.Model.Person)).Id; dvIncludeDataView.SetValue(_reactivateSettings.IncludeDataView); cbExcludeDataView.Checked = _reactivateSettings.IsExcludeDataViewEnabled; dvExcludeDataView.EntityTypeId = EntityTypeCache.Get(typeof(Rock.Model.Person)).Id; dvExcludeDataView.SetValue(_reactivateSettings.ExcludeDataView); cbInteractions.Checked = _reactivateSettings.IsInteractionsEnabled; var interactionChannels = new InteractionChannelService(_rockContext) .Queryable().AsNoTracking() .Select(a => new { a.Guid, a.Name }) .ToList(); var reactivateChannelTypes = interactionChannels.Select(c => new InteractionItem(c.Guid, c.Name)).ToList(); if (_reactivateSettings.Interactions != null) { bool noneSelected = !_reactivateSettings.Interactions.Any(i => i.IsInteractionTypeEnabled); foreach (var settingInteractionItem in _reactivateSettings.Interactions) { var interactionChannelType = reactivateChannelTypes.SingleOrDefault(a => a.Guid == settingInteractionItem.Guid); if (interactionChannelType != null) { interactionChannelType.IsInteractionTypeEnabled = noneSelected || settingInteractionItem.IsInteractionTypeEnabled; interactionChannelType.LastInteractionDays = settingInteractionItem.LastInteractionDays; } } // Now UNCHECK all channels that were NOT *previously* saved var remainingChannels = reactivateChannelTypes.Where(c => !_reactivateSettings.Interactions.Any(x => x.Guid == c.Guid)); foreach (var nonSavedInteractionItem in remainingChannels) { nonSavedInteractionItem.IsInteractionTypeEnabled = false; } } rInteractions.DataSource = reactivateChannelTypes; rInteractions.DataBind(); // Inactivate cbInactivatePeople.Checked = _inactivateSettings.IsEnabled; pnlInactivatePeople.Enabled = _inactivateSettings.IsEnabled; cbNoLastContribution.Checked = _inactivateSettings.IsNoLastContributionEnabled; nbNoLastContribution.Text = _inactivateSettings.NoLastContributionPeriod.ToStringSafe(); cbNoAttendanceInGroupType.Checked = _inactivateSettings.IsNoAttendanceInGroupTypeEnabled; nbNoAttendanceInGroupType.Text = _inactivateSettings.NoAttendanceInGroupTypeDays.ToStringSafe(); rlbNoAttendanceInGroupType.SetValues(_inactivateSettings.AttendanceInGroupType ?? new List <int>()); cbNoRegistrationInAnyEvent.Checked = _inactivateSettings.IsNotRegisteredInAnyEventEnabled; nbNoRegistrationInAnyEvent.Text = _inactivateSettings.NotRegisteredInAnyEventDays.ToStringSafe(); cbNoSiteLogin.Checked = _inactivateSettings.IsNoSiteLoginEnabled; nbNoSiteLogin.Text = _inactivateSettings.NoSiteLoginPeriod.ToStringSafe(); cbNoPrayerRequest.Checked = _inactivateSettings.IsNoPrayerRequestEnabled; nbNoPrayerRequest.Text = _inactivateSettings.NoPrayerRequestPeriod.ToStringSafe(); cbNoPersonAttributes.Checked = _inactivateSettings.IsNoPersonAttributesEnabled; nbNoPersonAttributes.Text = _inactivateSettings.NoPersonAttributesDays.ToStringSafe(); rlbNoPersonAttributes.SetValues(_inactivateSettings.PersonAttributes ?? new List <int>()); cbNotInDataView.Checked = _inactivateSettings.IsNotInDataviewEnabled; dvNotInDataView.EntityTypeId = EntityTypeCache.Get(typeof(Rock.Model.Person)).Id; dvNotInDataView.SetValue(_inactivateSettings.NotInDataview); cbNoInteractions.Checked = _inactivateSettings.IsNoInteractionsEnabled; nbRecordsOlderThan.Text = _inactivateSettings.RecordsOlderThan.ToStringSafe(); var inactivateChannelTypes = interactionChannels.Select(c => new InteractionItem(c.Guid, c.Name)).ToList(); if (_inactivateSettings.NoInteractions != null) { bool noneSelected = !_inactivateSettings.NoInteractions.Any(i => i.IsInteractionTypeEnabled); foreach (var settingInteractionItem in _inactivateSettings.NoInteractions) { var interactionChannelType = inactivateChannelTypes.SingleOrDefault(a => a.Guid == settingInteractionItem.Guid); if (interactionChannelType != null) { interactionChannelType.IsInteractionTypeEnabled = noneSelected || settingInteractionItem.IsInteractionTypeEnabled; interactionChannelType.LastInteractionDays = settingInteractionItem.LastInteractionDays; } } // Now UNCHECK all channels that were NOT *previously* saved var remainingChannels = inactivateChannelTypes.Where(c => !_inactivateSettings.NoInteractions.Any(x => x.Guid == c.Guid)); foreach (var nonSavedInteractionItem in remainingChannels) { nonSavedInteractionItem.IsInteractionTypeEnabled = false; } } rNoInteractions.DataSource = inactivateChannelTypes; rNoInteractions.DataBind(); // campus Update cbCampusUpdate.Checked = _campusSettings.IsEnabled; pnlCampusUpdate.Enabled = _campusSettings.IsEnabled; cbMostFamilyAttendance.Checked = _campusSettings.IsMostFamilyAttendanceEnabled; nbMostFamilyAttendance.Text = _campusSettings.MostFamilyAttendancePeriod.ToStringSafe(); cbMostFamilyGiving.Checked = _campusSettings.IsMostFamilyGivingEnabled; nbMostFamilyGiving.Text = _campusSettings.MostFamilyGivingPeriod.ToStringSafe(); ddlAttendanceOrGiving.SetValue(_campusSettings.MostAttendanceOrGiving.ConvertToInt()); cbIgnoreIfManualUpdate.Checked = _campusSettings.IsIgnoreIfManualUpdateEnabled; nbIgnoreIfManualUpdate.Text = _campusSettings.IgnoreIfManualUpdatePeriod.ToStringSafe(); cbIgnoreCampusChanges.Checked = _campusSettings.IsIgnoreCampusChangesEnabled; if (_campusSettings.IgnoreCampusChanges != null && _campusSettings.IgnoreCampusChanges.Any()) { int i = 1; _ignoreCampusChangeRows = _campusSettings.IgnoreCampusChanges .Select(a => new IgnoreCampusChangeRow() { Id = i++, CampusCriteria = a.BasedOn, FromCampusId = a.FromCampus, ToCampusId = a.ToCampus }).ToList(); } else { _ignoreCampusChangeRows = new List <IgnoreCampusChangeRow>() { new IgnoreCampusChangeRow() { Id = 1 } }; } rptIgnoreCampusChanges.DataSource = _ignoreCampusChangeRows; rptIgnoreCampusChanges.DataBind(); // Adult Children cbAdultChildren.Checked = _adultChildrenSettings.IsEnabled; cbisMoveGraduated.Checked = _adultChildrenSettings.IsOnlyMoveGraduated; pnlAdultChildren.Enabled = _adultChildrenSettings.IsEnabled; nbAdultAge.Text = _adultChildrenSettings.AdultAge.ToString(); rpParentRelationship.GroupRoleId = _adultChildrenSettings.ParentRelationshipId; rpSiblingRelationship.GroupRoleId = _adultChildrenSettings.SiblingRelationshipId; cbSameAddress.Checked = _adultChildrenSettings.UseSameHomeAddress; cbSamePhone.Checked = _adultChildrenSettings.UseSameHomePhone; wfWorkflows.SetValues(_adultChildrenSettings.WorkflowTypeIds); nbMaxRecords.Text = _adultChildrenSettings.MaximumRecords.ToString(); // Update Connection Status cbUpdatePersonConnectionStatus.Checked = _updatePersonConnectionStatus.IsEnabled; pnlUpdatePersonConnectionStatus.Enabled = _updatePersonConnectionStatus.IsEnabled; var personConnectionStatusDataViewSettingsList = DefinedTypeCache.Get(Rock.SystemGuid.DefinedType.PERSON_CONNECTION_STATUS.AsGuid()).DefinedValues .Select(a => new PersonConnectionStatusDataView { PersonConnectionStatusValue = a, DataViewId = _updatePersonConnectionStatus.ConnectionStatusValueIdDataviewIdMapping.GetValueOrNull(a.Id) }).ToList(); rptPersonConnectionStatusDataView.DataSource = personConnectionStatusDataViewSettingsList; rptPersonConnectionStatusDataView.DataBind(); // Update Family Status cbUpdateFamilyStatus.Checked = _updateFamilyStatus.IsEnabled; pnlUpdateFamilyStatus.Enabled = _updateFamilyStatus.IsEnabled; var groupStatusDataViewSettingsList = DefinedTypeCache.Get(Rock.SystemGuid.DefinedType.FAMILY_GROUP_STATUS.AsGuid()).DefinedValues .Select(a => new FamilyStatusDataView { GroupStatusValue = a, DataViewId = _updateFamilyStatus.GroupStatusValueIdDataviewIdMapping.GetValueOrNull(a.Id) }).ToList(); rptFamilyStatusDataView.DataSource = groupStatusDataViewSettingsList; rptFamilyStatusDataView.DataBind(); }
/// <summary> /// Gets the settings. /// </summary> private void GetSettings() { // Get Data Automation Settings _reactivateSettings = Rock.Web.SystemSettings.GetValue(SystemSetting.DATA_AUTOMATION_REACTIVATE_PEOPLE).FromJsonOrNull <ReactivatePeople>() ?? new ReactivatePeople(); _inactivateSettings = Rock.Web.SystemSettings.GetValue(SystemSetting.DATA_AUTOMATION_INACTIVATE_PEOPLE).FromJsonOrNull <InactivatePeople>() ?? new InactivatePeople(); _campusSettings = Rock.Web.SystemSettings.GetValue(SystemSetting.DATA_AUTOMATION_CAMPUS_UPDATE).FromJsonOrNull <UpdateFamilyCampus>() ?? new UpdateFamilyCampus(); _adultChildrenSettings = Rock.Web.SystemSettings.GetValue(SystemSetting.DATA_AUTOMATION_ADULT_CHILDREN).FromJsonOrNull <MoveAdultChildren>() ?? new MoveAdultChildren(); // Set Data Automation Controls // Reactivate cbReactivatePeople.Checked = _reactivateSettings.IsEnabled; pnlReactivatePeople.Enabled = _reactivateSettings.IsEnabled; cbLastContribution.Checked = _reactivateSettings.IsLastContributionEnabled; nbLastContribution.Text = _reactivateSettings.LastContributionPeriod.ToStringSafe(); cbAttendanceInServiceGroup.Checked = _reactivateSettings.IsAttendanceInServiceGroupEnabled; nbAttendanceInServiceGroup.Text = _reactivateSettings.AttendanceInServiceGroupPeriod.ToStringSafe(); cbAttendanceInGroupType.Checked = _reactivateSettings.IsAttendanceInGroupTypeEnabled; nbAttendanceInGroupType.Text = _reactivateSettings.AttendanceInGroupTypeDays.ToStringSafe(); rlbAttendanceInGroupType.SetValues(_reactivateSettings.AttendanceInGroupType ?? new List <int>()); cbPrayerRequest.Checked = _reactivateSettings.IsPrayerRequestEnabled; nbPrayerRequest.Text = _reactivateSettings.PrayerRequestPeriod.ToStringSafe(); cbPersonAttributes.Checked = _reactivateSettings.IsPersonAttributesEnabled; nbPersonAttributes.Text = _reactivateSettings.PersonAttributesDays.ToStringSafe(); rlbPersonAttributes.SetValues(_reactivateSettings.PersonAttributes ?? new List <int>()); cbIncludeDataView.Checked = _reactivateSettings.IsIncludeDataViewEnabled; dvIncludeDataView.EntityTypeId = EntityTypeCache.Read(typeof(Rock.Model.Person)).Id; dvIncludeDataView.SetValue(_reactivateSettings.IncludeDataView); cbExcludeDataView.Checked = _reactivateSettings.IsExcludeDataViewEnabled; dvExcludeDataView.EntityTypeId = EntityTypeCache.Read(typeof(Rock.Model.Person)).Id; dvExcludeDataView.SetValue(_reactivateSettings.ExcludeDataView); cbInteractions.Checked = _reactivateSettings.IsInteractionsEnabled; var interactionChannels = new InteractionChannelService(_rockContext) .Queryable().AsNoTracking() .Select(a => new { a.Guid, a.Name }) .ToList(); var reactivateChannelTypes = interactionChannels.Select(c => new InteractionItem(c.Guid, c.Name)).ToList(); if (_reactivateSettings.Interactions != null) { bool noneSelected = !_reactivateSettings.Interactions.Any(i => i.IsInteractionTypeEnabled); foreach (var settingInteractionItem in _reactivateSettings.Interactions) { var interactionChannelType = reactivateChannelTypes.SingleOrDefault(a => a.Guid == settingInteractionItem.Guid); if (interactionChannelType != null) { interactionChannelType.IsInteractionTypeEnabled = noneSelected || settingInteractionItem.IsInteractionTypeEnabled; interactionChannelType.LastInteractionDays = settingInteractionItem.LastInteractionDays; } } } rInteractions.DataSource = reactivateChannelTypes; rInteractions.DataBind(); // Inactivate cbInactivatePeople.Checked = _inactivateSettings.IsEnabled; pnlInactivatePeople.Enabled = _inactivateSettings.IsEnabled; cbNoLastContribution.Checked = _inactivateSettings.IsNoLastContributionEnabled; nbNoLastContribution.Text = _inactivateSettings.NoLastContributionPeriod.ToStringSafe(); cbNoAttendanceInGroupType.Checked = _inactivateSettings.IsNoAttendanceInGroupTypeEnabled; nbNoAttendanceInGroupType.Text = _inactivateSettings.NoAttendanceInGroupTypeDays.ToStringSafe(); rlbNoAttendanceInGroupType.SetValues(_inactivateSettings.AttendanceInGroupType ?? new List <int>()); cbNoPrayerRequest.Checked = _inactivateSettings.IsNoPrayerRequestEnabled; nbNoPrayerRequest.Text = _inactivateSettings.NoPrayerRequestPeriod.ToStringSafe(); cbNoPersonAttributes.Checked = _inactivateSettings.IsNoPersonAttributesEnabled; nbNoPersonAttributes.Text = _inactivateSettings.NoPersonAttributesDays.ToStringSafe(); rlbNoPersonAttributes.SetValues(_inactivateSettings.PersonAttributes ?? new List <int>()); cbNotInDataView.Checked = _inactivateSettings.IsNotInDataviewEnabled; dvNotInDataView.EntityTypeId = EntityTypeCache.Read(typeof(Rock.Model.Person)).Id; dvNotInDataView.SetValue(_inactivateSettings.NotInDataview); cbNoInteractions.Checked = _inactivateSettings.IsNoInteractionsEnabled; var inactivateChannelTypes = interactionChannels.Select(c => new InteractionItem(c.Guid, c.Name)).ToList(); if (_inactivateSettings.NoInteractions != null) { bool noneSelected = !_inactivateSettings.NoInteractions.Any(i => i.IsInteractionTypeEnabled); foreach (var settingInteractionItem in _inactivateSettings.NoInteractions) { var interactionChannelType = inactivateChannelTypes.SingleOrDefault(a => a.Guid == settingInteractionItem.Guid); if (interactionChannelType != null) { interactionChannelType.IsInteractionTypeEnabled = noneSelected || settingInteractionItem.IsInteractionTypeEnabled; interactionChannelType.LastInteractionDays = settingInteractionItem.LastInteractionDays; } } } rNoInteractions.DataSource = inactivateChannelTypes; rNoInteractions.DataBind(); // campus Update cbCampusUpdate.Checked = _campusSettings.IsEnabled; pnlCampusUpdate.Enabled = _campusSettings.IsEnabled; cbMostFamilyAttendance.Checked = _campusSettings.IsMostFamilyAttendanceEnabled; nbMostFamilyAttendance.Text = _campusSettings.MostFamilyAttendancePeriod.ToStringSafe(); cbMostFamilyGiving.Checked = _campusSettings.IsMostFamilyGivingEnabled; nbMostFamilyGiving.Text = _campusSettings.MostFamilyGivingPeriod.ToStringSafe(); ddlAttendanceOrGiving.SetValue(_campusSettings.MostAttendanceOrGiving.ConvertToInt()); cbIgnoreIfManualUpdate.Checked = _campusSettings.IsIgnoreIfManualUpdateEnabled; nbIgnoreIfManualUpdate.Text = _campusSettings.IgnoreIfManualUpdatePeriod.ToStringSafe(); cbIgnoreCampusChanges.Checked = _campusSettings.IsIgnoreCampusChangesEnabled; if (_campusSettings.IgnoreCampusChanges != null && _campusSettings.IgnoreCampusChanges.Any()) { int i = 1; _ignoreCampusChangeRows = _campusSettings.IgnoreCampusChanges .Select(a => new IgnoreCampusChangeRow() { Id = i++, CampusCriteria = a.BasedOn, FromCampusId = a.FromCampus, ToCampusId = a.ToCampus }).ToList(); } else { _ignoreCampusChangeRows = new List <IgnoreCampusChangeRow>() { new IgnoreCampusChangeRow() { Id = 1 } }; } rIgnoreCampusChanges.DataSource = _ignoreCampusChangeRows; rIgnoreCampusChanges.DataBind(); // Adult Children cbAdultChildren.Checked = _adultChildrenSettings.IsEnabled; pnlAdultChildren.Enabled = _adultChildrenSettings.IsEnabled; nbAdultAge.Text = _adultChildrenSettings.AdultAge.ToString(); rpParentRelationship.GroupRoleId = _adultChildrenSettings.ParentRelationshipId; rpSiblingRelationship.GroupRoleId = _adultChildrenSettings.SiblingRelationshipId; cbSameAddress.Checked = _adultChildrenSettings.UseSameHomeAddress; cbSamePhone.Checked = _adultChildrenSettings.UseSameHomePhone; wfWorkflows.SetValues(_adultChildrenSettings.WorkflowTypeIds); nbMaxRecords.Text = _adultChildrenSettings.MaximumRecords.ToString(); }