コード例 #1
0
ファイル: CampaignManager.cs プロジェクト: marcoramzy/Rock
        /// <summary>
        /// Processes the campaign configuration entity set.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="campaignItem">The campaign item.</param>
        private void ProcessCampaignConfigurationEntitySet(IJobExecutionContext context, CampaignItem campaignItem)
        {
            context.UpdateLastStatusMessage($"Processing entity set for {campaignItem.Name}.");

            campaignItem.EntitySetId = CampaignConnectionHelper.GetEntitySet(campaignItem);
            CampaignConnectionHelper.AddOrUpdateCampaignConfiguration(campaignItem.Guid, campaignItem);
        }
コード例 #2
0
        /// <summary>
        /// Handles the Click event of the btnSave control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
        protected void btnSave_Click(object sender, EventArgs e)
        {
            var campaignConnectionGuid = hfCampaignConnectionGuid.Value.AsGuid();

            CampaignItem campaignConnection = null;

            if (campaignConnectionGuid == Guid.Empty)
            {
                campaignConnection = new CampaignItem()
                {
                    Guid = Guid.NewGuid()
                };
            }
            else
            {
                campaignConnection = CampaignConnectionHelper.GetCampaignConfiguration(campaignConnectionGuid);
            }

            campaignConnection.Name                        = tbName.Text;
            campaignConnection.IsActive                    = cbIsActive.Checked;
            campaignConnection.ConnectionTypeGuid          = ddlConnectionType.SelectedValue.AsGuid();
            campaignConnection.RequestCommentsLavaTemplate = ceCommentLavaTemplate.Text;
            campaignConnection.OpportunityGuid             = ddlConnectionOpportunity.SelectedValue.AsGuid();
            var dataViewGuid = new DataViewService(new RockContext()).GetGuid(dvRequestor.SelectedValue.AsInteger());

            if (dataViewGuid.HasValue)
            {
                campaignConnection.DataViewGuid = dataViewGuid.Value;
            }
            campaignConnection.FamilyLimits = rblFamilyLimits.SelectedValueAsEnum <FamilyLimits>(FamilyLimits.Everyone);
            campaignConnection.CreateConnectionRequestOption = rblCreateConnectionRequests.SelectedValueAsEnum <CreateConnectionRequestOptions>(CreateConnectionRequestOptions.AsNeeded);
            if (gpOptOutGroup.GroupId.HasValue)
            {
                campaignConnection.OptOutGroupGuid = new GroupService(new RockContext()).GetGuid(gpOptOutGroup.GroupId.Value);
            }
            campaignConnection.DailyLimitAssigned      = nbDailyLimit.Text.AsIntegerOrNull();
            campaignConnection.DaysBetweenConnection   = nbNumberOfDays.Text.AsInteger();
            campaignConnection.PreferPreviousConnector = cbPreferPreviousConnector.Checked;

            // Save what we have so far, and it will be saved again once the EntitySetId is updated when the thread completes.
            CampaignConnectionHelper.AddOrUpdateCampaignConfiguration(campaignConnection.Guid, campaignConnection);

            // Only update the EntitySet if the campaign is active
            if (campaignConnection.IsActive)
            {
                // Run this thread in the background since it takes several seconds to calculate.
                Task.Run(() => {
                    campaignConnection.EntitySetId = CampaignConnectionHelper.GetEntitySet(campaignConnection);
                    CampaignConnectionHelper.AddOrUpdateCampaignConfiguration(campaignConnection.Guid, campaignConnection);
                });
            }

            NavigateToParentPage();
        }