protected void Page_Load(object sender, EventArgs e)
    {
        // Check read permission
        ContactHelper.AuthorizedReadContact(CMSContext.CurrentSiteID, true);

        string siteName = CMSContext.CurrentSiteName;

        // Get bounce limit
        mBounceLimit = NewsletterHelper.BouncedEmailsLimit(siteName);
        // Get info if bounced e-mail tracking is available
        mBounceInfoAvailable = NewsletterHelper.MonitorBouncedEmails(siteName);

        // Check if parent object exist
        SubscriberInfo sb = SubscriberInfoProvider.GetSubscriberInfo(QueryHelper.GetInteger("subscriberid", 0));

        EditedObject = sb;

        // Initialize unigrid
        UniGrid.OnAction            += uniGrid_OnAction;
        UniGrid.OnExternalDataBound += uniGrid_OnExternalDataBound;
        UniGrid.WhereCondition       = "ContactID IN (SELECT ContactGroupMemberRelatedID FROM OM_ContactGroupMember WHERE ContactGroupMemberContactGroupID = "
                                       + QueryHelper.GetInteger("groupid", 0) + " AND ContactGroupMemberType = 0) AND ContactSiteID = " + CMSContext.CurrentSiteID
                                       + " AND ContactMergedWithContactID IS NULL";
        UniGrid.ShowObjectMenu = false;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        mNewsletter = EditedObjectParent as NewsletterInfo;

        if (mNewsletter == null)
        {
            RedirectToAccessDenied(GetString("general.invalidparameters"));
        }

        if (!mNewsletter.CheckPermissions(PermissionsEnum.Read, CurrentSiteName, CurrentUser))
        {
            RedirectToAccessDenied(mNewsletter.TypeInfo.ModuleName, "Read");
        }

        mBounceMonitoringEnabled = NewsletterHelper.MonitorBouncedEmails(CurrentSiteName);
        mTrackingEnabled         = NewsletterHelper.IsTrackingAvailable();

        if (mTrackingEnabled && !mBounceMonitoringEnabled)
        {
            ShowInformation(GetString("newsletter.viewadditionalstatsmessage"));
        }

        ScriptHelper.RegisterTooltip(this);

        // Initialize unigrid
        UniGrid.WhereCondition       = String.Format("IssueNewsletterID={0} AND IssueVariantOfIssueID IS NULL", mNewsletter.NewsletterID);
        UniGrid.ZeroRowsText         = GetString("Newsletter_Issue_List.NoIssuesFound");
        UniGrid.OnAction            += uniGrid_OnAction;
        UniGrid.OnBeforeDataReload  += UniGrid_OnBeforeDataReload;
        UniGrid.OnExternalDataBound += UniGrid_OnExternalDataBound;

        // Initialize header actions
        InitHeaderActions();

        // Prepare data for listing
        // Group clicked link records by IssueID with Columns LinkIssueID, UniqueUserClicks, VariantParent (to calculate clicked links through all variant)
        mClickedLinksSummary = ClickedLinkInfoProvider.GetClickedLinks()
                               .Columns(new QueryColumn("LinkIssueID"),
                                        new AggregatedColumn(AggregationType.Count, "DISTINCT(ClickedLinkEmail)").As("UniqueUserClicks"))
                               .Source(s => s.Join <LinkInfo>("ClickedLinkNewsletterLinkID", "LinkID"))
                               .GroupBy("LinkIssueID");

        // Prepare variant summaries
        mVariantIssueSummaries = IssueInfoProvider.GetIssues()
                                 .Columns(new QueryColumn("IssueVariantOfIssueID"),
                                          new AggregatedColumn(AggregationType.Sum, "IssueOpenedEmails").As("OpenedEmailsSum"))
                                 .WhereEquals("IssueNewsletterID", mNewsletter.NewsletterID)
                                 .GroupBy("IssueVariantOfIssueID")
                                 .Having("IssueVariantOfIssueID IS NOT NULL");

        // AB Variant issues for current newsletter
        mVariantIssues = IssueInfoProvider.GetIssues()
                         .Columns("IssueID", "IssueVariantOfIssueID")
                         .WhereEquals("IssueNewsletterID", mNewsletter.NewsletterID)
                         .WhereNotNull("IssueVariantOfIssueID");

        AddBrokenEmailUrlNotifier(mNewsletter, lblUrlWarning);
    }
Example #3
0
    /// <summary>
    /// Returns issue's sent emails amount or delivered emails amount based on
    /// monitor bounced email setting.
    /// </summary>
    /// <param name="issue">Issue</param>
    private int GetSentOrDelivered(IssueInfo issue)
    {
        if (NewsletterHelper.MonitorBouncedEmails(CurrentSite.SiteName))
        {
            return(issue.IssueSentEmails - issue.IssueBounces);
        }

        return(issue.IssueSentEmails);
    }
Example #4
0
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        mNewsletter = EditedObjectParent as NewsletterInfo;

        if (mNewsletter == null)
        {
            RedirectToAccessDenied(GetString("general.invalidparameters"));
        }

        if (!mNewsletter.CheckPermissions(PermissionsEnum.Read, CurrentSiteName, CurrentUser))
        {
            RedirectToAccessDenied(mNewsletter.TypeInfo.ModuleName, "Read");
        }

        mBounceMonitoringEnabled = NewsletterHelper.MonitorBouncedEmails(CurrentSiteName);
        mTrackingEnabled         = NewsletterHelper.IsTrackingAvailable();

        if (mTrackingEnabled && !mBounceMonitoringEnabled)
        {
            ShowInformation(GetString("newsletter.viewadditionalstatsmessage"));
        }

        RegisterScripts();

        InitializeUnigrid();

        InitHeaderActions();

        // Prepare data for listing
        // Group clicked link records by IssueID with Columns LinkIssueID, UniqueUserClicks, VariantParent (to calculate clicked links through all variant)
        mClickedLinksSummary = ClickedLinkInfo.Provider.Get()
                               .Columns(new QueryColumn("LinkIssueID"),
                                        new AggregatedColumn(AggregationType.Count, "DISTINCT(ClickedLinkEmail)").As("UniqueUserClicks"))
                               .Source(s => s.Join <LinkInfo>("ClickedLinkNewsletterLinkID", "LinkID"))
                               .GroupBy("LinkIssueID");

        // Prepare variant summaries
        mVariantIssueSummaries = IssueInfo.Provider.Get()
                                 .Columns(new QueryColumn("IssueVariantOfIssueID"),
                                          new AggregatedColumn(AggregationType.Sum, "IssueOpenedEmails").As("OpenedEmailsSum"))
                                 .WhereEquals("IssueNewsletterID", mNewsletter.NewsletterID)
                                 .GroupBy("IssueVariantOfIssueID")
                                 .Having("IssueVariantOfIssueID IS NOT NULL");

        // AB Variant issues for current newsletter
        mVariantIssues = IssueInfo.Provider.Get()
                         .Columns("IssueID", "IssueVariantOfIssueID")
                         .WhereEquals("IssueNewsletterID", mNewsletter.NewsletterID)
                         .WhereNotNull("IssueVariantOfIssueID");

        AddBrokenEmailUrlNotifier(mNewsletter, lblUrlWarning);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        SiteInfo currentSite = SiteContext.CurrentSite;

        mBounceLimit         = NewsletterHelper.BouncedEmailsLimit(currentSite.SiteName);
        mBounceInfoAvailable = NewsletterHelper.MonitorBouncedEmails(currentSite.SiteName);

        // Initialize unigrid
        UniGrid.OnAction            += uniGrid_OnAction;
        UniGrid.OnExternalDataBound += uniGrid_OnExternalDataBound;
        UniGrid.WhereCondition       = "SubscriberSiteID = " + currentSite.SiteID;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Prepare object data
        mIssue = (IssueInfo)EditedObject;
        mMonitorBouncedEmails = NewsletterHelper.MonitorBouncedEmails(CurrentSiteName);
        issueLinks.IssueID    = mIssue.IssueID;
        issueLinks.NoDataText = GetString("newsletter.issue.overviewnoclicks");

        mParentAndVariantsIDs = IssueInfoProvider.GetIssues()
                                .Column("IssueID")
                                .WhereEquals("IssueVariantOfIssueID", mIssue.IssueID)
                                .GetListResult <int>();

        mParentAndVariantsIDs.Add(mIssue.IssueID);

        if (!ShouldDisplayOverviewPage())
        {
            ShowInformation(GetString("newsletter.issue.overviewnotsentyet"));
            pnlContent.Visible = false;
            return;
        }

        if (!mMonitorBouncedEmails)
        {
            ShowInformation(GetString("newsletter.viewadditionalstatsmessage"));
        }

        // Hide default submit button
        issueForm.SubmitButton.Visible = false;

        // Set campaign link
        if (issueForm.FieldControls.Contains("IssueUTMCampaign"))
        {
            bool areCampaignsAvailable = LicenseKeyInfoProvider.IsFeatureAvailable(RequestContext.CurrentDomain, FeatureEnum.CampaignAndConversions);

            issueForm.FieldControls["IssueUTMCampaign"].Value =
                areCampaignsAvailable ?
                GetUtmCampaignNameHtmlOutput() :
                mIssue.IssueUTMCampaign;
        }

        // Init engagement statistics
        InitEngagement();
        InitFunnel();
        InitOverview();

        pnlDelivery.Visible = mMonitorBouncedEmails;

        // Ensure tooltips
        RegisterTooltipScript();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        mNewsletter = EditedObject as NewsletterInfo;
        if (mNewsletter == null)
        {
            RedirectToAccessDenied(GetString("general.invalidparameters"));
        }

        if (!mNewsletter.CheckPermissions(PermissionsEnum.Read, CurrentSiteName, CurrentUser))
        {
            RedirectToAccessDenied(mNewsletter.TypeInfo.ModuleName, "ManageSubscribers");
        }

        ScriptHelper.RegisterDialogScript(this);

        CurrentMaster.DisplayActionsPanel = true;
        chkRequireOptIn.CheckedChanged   += chkRequireOptIn_CheckedChanged;

        string currentSiteName = SiteContext.CurrentSiteName;

        mBounceLimit         = NewsletterHelper.BouncedEmailsLimit(currentSiteName);
        mBounceInfoAvailable = NewsletterHelper.MonitorBouncedEmails(currentSiteName);

        // Check if newsletter enables double opt-in
        if (!mNewsletter.NewsletterEnableOptIn)
        {
            chkRequireOptIn.Visible = false;
        }

        if (!RequestHelper.IsPostBack())
        {
            chkSendConfirmation.Checked = false;
        }

        // Initialize unigrid
        UniGridSubscribers.WhereCondition       = "NewsletterID = " + mNewsletter.NewsletterID;
        UniGridSubscribers.OnAction            += UniGridSubscribers_OnAction;
        UniGridSubscribers.OnExternalDataBound += UniGridSubscribers_OnExternalDataBound;
        UniGridSubscribers.ZeroRowsText         = GetString("newsletter.subscribers.nodata");
        UniGridSubscribers.FilteredZeroRowsText = GetString("newsletter.subscribers.noitemsfound");

        // Initialize selectors and mass actions
        SetupSelectors();
    }
Example #8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string siteName = SiteContext.CurrentSiteName;

        // Get bounce limit
        mBounceLimit = NewsletterHelper.BouncedEmailsLimit(siteName);
        // Get info if bounced e-mail tracking is available
        mBounceInfoAvailable = NewsletterHelper.MonitorBouncedEmails(siteName);

        // Check if parent object exist
        SubscriberInfo sb = SubscriberInfoProvider.GetSubscriberInfo(QueryHelper.GetInteger("objectid", 0));

        EditedObject = sb;

        // Initialize unigrid
        UniGrid.OnAction            += uniGrid_OnAction;
        UniGrid.OnExternalDataBound += uniGrid_OnExternalDataBound;
        UniGrid.WhereCondition       = "((RoleID = " + QueryHelper.GetInteger("roleid", 0) + ") AND (SiteID = " + SiteContext.CurrentSiteID + "))";
    }
    public override void ReloadData(bool forceReload)
    {
        if (StopProcessing && !forceReload)
        {
            return;
        }
        InitControls(forceReload);

        // Javascript for handling winner mailout time
        var scriptBlock = string.Format(@"function SelWinner(id) {{ modalDialog('{0}?objectid=' + id, 'NewsletterWinnerMailout', '700px', '425px'); return false; }}",
                                        ResolveUrl(@"~\CMSModules\Newsletters\Tools\Newsletters\Newsletter_Issue_WinnerMailout.aspx"));

        ScriptHelper.RegisterDialogScript(Page);
        ScriptHelper.RegisterClientScriptBlock(this, GetType(), "Actions", scriptBlock, true);
        ScriptHelper.RegisterTooltip(Page);

        // Register handlers
        grdElem.OnExternalDataBound   -= grdElem_OnExternalDataBound;
        grdElem.OnExternalDataBound   += grdElem_OnExternalDataBound;
        grdElem.GridView.RowDataBound -= GridView_RowDataBound;
        grdElem.GridView.RowDataBound += GridView_RowDataBound;

        // Get winner ID if any
        var abTestInfo = ABTestInfoProvider.GetABTestInfoForIssue(ParentIssueID);

        if (abTestInfo != null)
        {
            WinnerIssueID = abTestInfo.TestWinnerIssueID;
        }

        mBounceMonitoringEnabled = NewsletterHelper.MonitorBouncedEmails(SiteContext.CurrentSiteName);

        grdElem.OrderBy         = "IssueVariantName, IssueID";
        grdElem.WhereCondition  = GetWhereCondition(ParentIssueID, false);
        grdElem.ShowActionsMenu = false;
        grdElem.ShowObjectMenu  = false;
        if (!ShowSelectWinnerAction)
        {
            grdElem.GridActions = null;
        }
        grdElem.ReloadData();
    }
Example #10
0
    protected void Page_Load(object sender, EventArgs e)
    {
        mNewsletter = EditedObject as NewsletterInfo;

        if (mNewsletter == null)
        {
            RedirectToAccessDenied(GetString("general.invalidparameters"));
        }

        if (!mNewsletter.CheckPermissions(PermissionsEnum.Read, CurrentSiteName, CurrentUser))
        {
            RedirectToAccessDenied(mNewsletter.TypeInfo.ModuleName, "Read");
        }

        mBounceMonitoringEnabled = NewsletterHelper.MonitorBouncedEmails(CurrentSiteName);
        mOnlineMarketingEnabled  = NewsletterHelper.OnlineMarketingAvailable(CurrentSiteName);
        mTrackingEnabled         = NewsletterHelper.IsTrackingAvailable();
        mABTestEnabled           = NewsletterHelper.IsABTestingAvailable();

        ScriptHelper.RegisterDialogScript(this);

        string scriptBlock = string.Format(@"
            function RefreshPage() {{ document.location.replace(document.location); }}
            function NewItem(id) {{ modalDialog('{0}?parentobjectid=' + id, 'NewsletterNewIssue', screen.availWidth - 10, screen.availHeight - 80); }}
            function ShowOpenedBy(id) {{ modalDialog('{1}?objectid=' + id, 'NewsletterIssueOpenedBy', '900px', '700px');  return false; }}
            function ViewClickedLinks(id) {{ modalDialog('{2}?objectid=' + id, 'NewsletterTrackedLinks', '900px', '700px'); return false; }}",
                                           ResolveUrl(@"~\CMSModules\Newsletters\Tools\Newsletters\Newsletter_Issue_New.aspx"),
                                           ResolveUrl(@"~\CMSModules\Newsletters\Tools\Newsletters\Newsletter_Issue_OpenedBy.aspx"),
                                           ResolveUrl(@"~\CMSModules\Newsletters\Tools\Newsletters\Newsletter_Issue_TrackedLinks.aspx"));

        ScriptHelper.RegisterClientScriptBlock(this, GetType(), "Actions", scriptBlock, true);

        // Initialize unigrid
        UniGrid.WhereCondition       = String.Format("IssueNewsletterID={0} AND IssueVariantOfIssueID IS NULL", mNewsletter.NewsletterID);
        UniGrid.ZeroRowsText         = GetString("Newsletter_Issue_List.NoIssuesFound");
        UniGrid.OnAction            += uniGrid_OnAction;
        UniGrid.OnBeforeDataReload  += UniGrid_OnBeforeDataReload;
        UniGrid.OnExternalDataBound += UniGrid_OnExternalDataBound;

        // Initialize header actions
        InitHeaderActions();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        newsletterId = QueryHelper.GetInteger("newsletterid", 0);
        if (newsletterId == 0)
        {
            RequestHelper.EndResponse();
        }

        // Get newsletter object and check its existence
        mNewsletter  = NewsletterInfoProvider.GetNewsletterInfo(newsletterId);
        EditedObject = mNewsletter;

        string siteName = CMSContext.CurrentSiteName;

        mBounceMonitoringEnabled = NewsletterHelper.MonitorBouncedEmails(siteName);
        mOnlineMarketingEnabled  = NewsletterHelper.OnlineMarketingAvailable(siteName);
        mTrackingEnabled         = NewsletterHelper.IsTrackingAvailable();
        mABTestEnabled           = NewsletterHelper.IsABTestingAvailable();

        ScriptHelper.RegisterDialogScript(this);

        string scriptBlock = string.Format(@"
            function RefreshPage() {{ document.location.replace(document.location); }}
            function NewItem(id) {{ modalDialog('{0}?newsletterid=' + id, 'NewsletterNewIssue', screen.availWidth - 10, screen.availHeight - 80); }}
            function ShowOpenedBy(id) {{ modalDialog('{1}?issueid=' + id, 'NewsletterIssueOpenedBy', '900px', '700px');  return false; }}
            function ViewClickedLinks(id) {{ modalDialog('{2}?issueid=' + id, 'NewsletterTrackedLinks', '900px', '700px'); return false; }}",
                                           ResolveUrl(@"~\CMSModules\Newsletters\Tools\Newsletters\Newsletter_Issue_New.aspx"),
                                           ResolveUrl(@"~\CMSModules\Newsletters\Tools\Newsletters\Newsletter_Issue_OpenedBy.aspx"),
                                           ResolveUrl(@"~\CMSModules\Newsletters\Tools\Newsletters\Newsletter_Issue_TrackedLinks.aspx"));

        ScriptHelper.RegisterClientScriptBlock(this, GetType(), "Actions", scriptBlock, true);

        // Initialize unigrid
        UniGrid.WhereCondition       = String.Format("IssueNewsletterID={0} AND IssueVariantOfIssueID IS NULL", newsletterId);
        UniGrid.ZeroRowsText         = GetString("Newsletter_Issue_List.NoIssuesFound");
        UniGrid.OnAction            += uniGrid_OnAction;
        UniGrid.OnBeforeDataReload  += UniGrid_OnBeforeDataReload;
        UniGrid.OnExternalDataBound += UniGrid_OnExternalDataBound;

        // Initialize header actions
        InitHeaderActions();
    }
Example #12
0
    protected void Page_Load(object sender, EventArgs e)
    {
        SiteInfo currentSite = CMSContext.CurrentSite;

        mBounceLimit         = NewsletterHelper.BouncedEmailsLimit(currentSite.SiteName);
        mBounceInfoAvailable = NewsletterHelper.MonitorBouncedEmails(currentSite.SiteName);

        // Add subscriber link
        string[,] actions = new string[1, 6];
        actions[0, 0]     = HeaderActions.TYPE_HYPERLINK;
        actions[0, 1]     = GetString("Subscriber_List.NewItemCaption");
        actions[0, 3]     = ResolveUrl("Subscriber_New.aspx");
        actions[0, 5]     = GetImageUrl("Objects/Newsletter_Subscriber/add.png");

        CurrentMaster.HeaderActions.Actions = actions;

        // Initialize unigrid
        UniGrid.OnAction            += uniGrid_OnAction;
        UniGrid.OnExternalDataBound += uniGrid_OnExternalDataBound;
        UniGrid.WhereCondition       = "SubscriberSiteID = " + currentSite.SiteID;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        SiteInfo currentSite = SiteContext.CurrentSite;

        mBounceLimit         = NewsletterHelper.BouncedEmailsLimit(currentSite.SiteName);
        mBounceInfoAvailable = NewsletterHelper.MonitorBouncedEmails(currentSite.SiteName);

        // Initialize unigrid
        UniGrid.OnAction            += uniGrid_OnAction;
        UniGrid.OnExternalDataBound += uniGrid_OnExternalDataBound;
        UniGrid.WhereCondition       = "SubscriberSiteID = " + currentSite.SiteID;
        UniGrid.FilteredZeroRowsText = GetString("subscriber_list.nodata.filtered");

        if (LicenseContext.CurrentLicenseInfo.Edition == ProductEditionEnum.EnterpriseMarketingSolution)
        {
            UniGrid.ZeroRowsText = string.Format(GetString("subscriber_list.nodata.ems"), URLHelper.ResolveUrl(UIContextHelper.GetApplicationUrl(ModuleName.ONLINEMARKETING, "ContactsFrameset", "?tabname=Contacts")));
        }
        else
        {
            UniGrid.ZeroRowsText = GetString("subscriber_list.nodata.noems");
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        ScriptHelper.RegisterDialogScript(this);

        CurrentMaster.DisplayActionsPanel = true;
        chkRequireOptIn.CheckedChanged   += chkRequireOptIn_CheckedChanged;

        string siteName = CMSContext.CurrentSiteName;

        mBounceLimit         = NewsletterHelper.BouncedEmailsLimit(siteName);
        mBounceInfoAvailable = NewsletterHelper.MonitorBouncedEmails(siteName);

        newsletterId = QueryHelper.GetInteger("newsletterid", 0);
        NewsletterInfo newsletter = NewsletterInfoProvider.GetNewsletterInfo(newsletterId);

        EditedObject = newsletter;

        // Check if newsletter enables double opt-in
        if ((newsletter != null) && !newsletter.NewsletterEnableOptIn)
        {
            chkRequireOptIn.Visible = false;
        }

        if (!RequestHelper.IsPostBack())
        {
            chkSendConfirmation.Checked = false;
        }

        // Initialize unigrid
        UniGridSubscribers.WhereCondition       = "NewsletterID = " + newsletterId;
        UniGridSubscribers.OnAction            += UniGridSubscribers_OnAction;
        UniGridSubscribers.OnExternalDataBound += UniGridSubscribers_OnExternalDataBound;

        // Initialize selectors and mass actions
        SetupSelectors();
    }
    /// <summary>
    /// Returns all e-mail addresses for specified newsletter.
    /// </summary>
    /// <param name="newsletterId">Newsletter</param>
    /// <param name="siteId">Site</param>
    private int GetEmailAddressCount(int newsletterId, int siteId)
    {
        // Get e-mail addresses for ordinary subscriber, user subriber and role subscriber
        string siteName       = SiteInfoProvider.GetSiteName(siteId);
        int    emailAddresses = NewsletterInfoProvider.GetEmailAddressCount(newsletterId, siteName);

        DataSet ContactID = SubscriberNewsletterInfoProvider.GetSubscriptions(
            String.Format("NewsletterID={0} AND (SubscriptionApproved=1 OR SubscriptionApproved IS NULL) AND (SubscriptionEnabled=1 OR SubscriptionEnabled IS NULL) AND SubscriberType='om.contactgroup'", newsletterId), null, 0, "DISTINCT(SubscriberRelatedID) AS SubscriberRelatedID");

        if (!DataHelper.DataSourceIsEmpty(ContactID))
        {
            int groupId = 0;
            foreach (DataRow dr in ContactID.Tables[0].Rows)
            {
                groupId = ValidationHelper.GetInteger(dr[0], 0);

                DataSet dsMembers = ModuleCommands.OnlineMarketingGetContactGroupMemberIDs(groupId, 0, 0,
                                                                                           NewsletterHelper.MonitorBouncedEmails(siteName),
                                                                                           NewsletterHelper.BouncedEmailsLimit(siteName), newsletterId);
                if (!DataHelper.DataSourceIsEmpty(dsMembers))
                {
                    emailAddresses += ValidationHelper.GetInteger(dsMembers.Tables[0].Rows.Count, 0);
                }
            }
        }

        return(emailAddresses);
    }