protected void ApplyClicked(object o, EventArgs e) { foreach (GridDataItem row in rgSubscribers.MasterTableView.Items) { var cb = row.FindControl("cbSelectRow") as IdeaSeed.Web.UI.CheckBox; if (cb.Checked) { var subscriberTags = new SubscriberCampaignTag(); subscriberTags.CampaignTagID = CurrentTagID; subscriberTags.SubscriberID = Convert.ToInt32(cb.Attributes["subscriberID"]); if (IsAdd) { new CMData.SubscriberCampaignTagRepository().Save(subscriberTags); } else { var subTags = new CMData.SubscriberCampaignTagRepository().GetByCampaignTagIDSubscriberID(CurrentTagID, Convert.ToInt32(cb.Attributes["subscriberID"])); new CMData.SubscriberCampaignTagRepository().Delete(subTags[0]); } } } ddlSearchColumn.SelectedIndex = 0; tbEndDate.DateInput.Text = ""; tbSearch.Text = ""; tbStartDate.DateInput.Text = ""; LoadSubscribers(true, IsAdd, false); }
protected void ApplyClicked(object o, EventArgs e) { if (SelectedSubscribers != null) { int totalUpdated = 0; //Iterate through selected subscribers foreach (var subscriber in SelectedSubscribers) { //iterate through selected tags foreach (GridDataItem row in rgTags.MasterTableView.Items) { var cb = row.FindControl("cbSelectRow") as IdeaSeed.Web.UI.CheckBox; if (cb.Checked) { int campiagnTagID = Convert.ToInt32(cb.Attributes["campaignTagID"]); if (IsAdd) { if (!CampaignManagerUtils.SubscriberHasTag(subscriber.ID, campiagnTagID)) { var subscriberTags = new CMCore.SubscriberCampaignTag(); subscriberTags.CampaignTagID = campiagnTagID; subscriberTags.SubscriberID = subscriber.ID; new CMData.SubscriberCampaignTagRepository().Save(subscriberTags); } } else { if (CampaignManagerUtils.SubscriberHasTag(subscriber.ID, campiagnTagID)) { var subTags = new CMData.SubscriberCampaignTagRepository().GetByCampaignTagIDSubscriberID(campiagnTagID, subscriber.ID); new CMData.SubscriberCampaignTagRepository().Delete(subTags[0]); } } totalUpdated++; } } } lblMessage.Visible = true; lblMessage.Text = "<b><font color='green'>" + totalUpdated.ToString() + "</font> tags where updated on <font color='red'>" + SelectedSubscribers.Count.ToString() + "</font> subscriber(s).</b>"; } }
protected void ItemCommand(object o, GridCommandEventArgs e) { if (e.CommandName == RadGrid.PerformInsertCommandName) { var subscriber = new CMCore.Subscriber(); subscriber.Email = (e.Item.FindControl("tbEmail") as IdeaSeed.Web.UI.TextBox).Text; subscriber.FirstName = (e.Item.FindControl("tbFirstName") as IdeaSeed.Web.UI.TextBox).Text; subscriber.LastName = (e.Item.FindControl("tbLastName") as IdeaSeed.Web.UI.TextBox).Text; subscriber.IsActive = (e.Item.FindControl("cbIsActive") as IdeaSeed.Web.UI.CheckBox).Checked; subscriber.DateCreated = DateTime.Now; if (CampaignManagerUtils.IsDuplicateSubscriber(subscriber.Email)) { ShowErrorModal(this, "This email address already exists."); } else { new CMData.SubscriberRepository().Save(subscriber); } } if (e.CommandName == RadGrid.UpdateCommandName) { if (e.Item is GridEditableItem) { var subscriber = new CMData.SubscriberRepository().GetByID((int)e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["ID"], false); subscriber.Email = (e.Item.FindControl("tbEmail") as IdeaSeed.Web.UI.TextBox).Text; subscriber.FirstName = (e.Item.FindControl("tbFirstName") as IdeaSeed.Web.UI.TextBox).Text; subscriber.LastName = (e.Item.FindControl("tbLastName") as IdeaSeed.Web.UI.TextBox).Text; subscriber.IsActive = (e.Item.FindControl("cbIsActive") as IdeaSeed.Web.UI.CheckBox).Checked; //This checks to make sure the original subscriber object and dirty subscriber object's email matches. If not, then check for duplicate. if ((e.Item.FindControl("tbEmail") as IdeaSeed.Web.UI.TextBox).Attributes["email"].Equals(subscriber.Email)) { new CMData.SubscriberRepository().SaveOrUpdate(subscriber); } else { if (CampaignManagerUtils.IsDuplicateSubscriber(subscriber.Email)) { ShowErrorModal(this, "This email address already exists."); e.Item.Expanded = true; } else { if (IdeaSeed.Core.Validation.ValidationUtils.IsEmailValid(subscriber.Email)) { new CMData.SubscriberRepository().SaveOrUpdate(subscriber); } } } } } if (e.CommandName == RadGrid.DeleteCommandName) { var subscriber = new CMData.SubscriberRepository().GetByID((int)e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["ID"], false); try { var tags = new CMData.SubscriberCampaignTagRepository().GetBySubscriberID(subscriber.ID); foreach (var t in tags) { new CMData.SubscriberCampaignTagRepository().Delete(t); } new CMData.SubscriberRepository().Delete(subscriber); } catch (Exception ex) { ShowErrorModal(this, "This tag is associated with one or more subscribers, or campaigns and cannot be deleted. You must first remove this tag from all subscribers and campaigns."); } } }