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