/// <summary> /// Handles the DeleteClick event of the gCampaigns control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RowEventArgs"/> instance containing the event data.</param> protected void gCampaigns_DeleteClick(object sender, RowEventArgs e) { var campaignConnectionItem = CampaignConnectionHelper.GetCampaignConfiguration(e.RowKeyValue.ToString().AsGuid()); if (campaignConnectionItem != null && campaignConnectionItem.EntitySetId != default(int)) { var rockContext = new RockContext(); var entitySetService = new EntitySetService(rockContext); var entitySet = entitySetService.Get(campaignConnectionItem.EntitySetId); string errorMessage; if (!entitySetService.CanDelete(entitySet, out errorMessage)) { mdGridWarning.Show(errorMessage, ModalAlertType.Information); return; } var entitySetItemQry = new EntitySetItemService(rockContext) .Queryable().AsNoTracking() .Where(i => i.EntitySetId == entitySet.Id); rockContext.BulkDelete(entitySetItemQry); entitySetService.Delete(entitySet); rockContext.SaveChanges(); CampaignConnectionHelper.RemoveCampaignConfiguration(e.RowKeyValue.ToString().AsGuid()); BindGrid(); } }
/// <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(); }
/// <summary> /// Handles the SelectedIndexChanged event of the ddlCampaignConnectionItem 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 ddlCampaignConnectionItem_SelectedIndexChanged(object sender, EventArgs e) { var selectedCampaignConnectionItemGuid = ddlCampaignConnectionItemsMultiple.SelectedValue.AsGuidOrNull(); if (!selectedCampaignConnectionItemGuid.HasValue) { // shouldn't happen return; } var campaignConnectionItem = CampaignConnectionHelper.GetCampaignConfiguration(selectedCampaignConnectionItemGuid.Value); int pendingCount = CampaignConnectionHelper.GetPendingConnectionCount(campaignConnectionItem, CurrentPerson); SetDefaultNumberOfRequests(selectedCampaignConnectionItemGuid.Value, pendingCount); }