コード例 #1
0
        /// <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());
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        /// <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();
        }
コード例 #4
0
        /// <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();
        }