Exemple #1
0
        private void ImportSubscriberList()
        {
            if (ruImport.UploadedFiles.Count > 0)
            {
                foreach (UploadedFile validFile in ruImport.UploadedFiles)
                {
                    using (StreamReader reader = new StreamReader(validFile.InputStream))
                    {
                        emaillist = reader.ReadToEnd().Split(',');
                    }
                }
            }

            foreach (var email in emaillist)
            {
                if (!CampaignManagerUtils.IsDuplicateSubscriber(email))
                {
                    var subscriber = new CMCore.Subscriber();
                    subscriber.Email       = email.Replace("\"", "");
                    subscriber.IsActive    = true;
                    subscriber.DateCreated = DateTime.Now;
                    new CMData.SubscriberRepository().Save(subscriber);
                    subscribers.Add(subscriber);
                    emailsAdded++;
                }
                else
                {
                    duplicateEmails++;
                }
            }
            ImportedSubscribers    = subscribers;
            lblReadyForImport.Text = emaillist.Length.ToString();
            lblEmailsImported.Text = emailsAdded.ToString();
            lblEmailsSkipped.Text  = duplicateEmails.ToString();
        }
Exemple #2
0
        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>";
            }
        }
Exemple #3
0
        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.");
                }
            }
        }