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