Exemple #1
0
    /// <summary>
    /// Loads summary box in the right upper corner.
    /// </summary>
    private void LoadSummaryBox()
    {
        lnkTest.HRef      = DocumentURLProvider.GetUrl(ABTest.ABTestOriginalPage);
        lnkTest.InnerText = ShortenUrl(ABTest.ABTestOriginalPage, MAX_LINK_LENGTH);
        lnkTest.Target    = "_blank";

        // If Visitors conversion methodology selected, use "Visitors" instead of "Visits"
        if (drpCountingMethodology.SelectedValue == "absessionconversionfirst")
        {
            lblVisits.ResourceString = "abtesting.overview.summary.visitors";
        }

        lblStatus.Text = ABTestStatusEvaluator.GetFormattedStatus(TestStatus).ToString();
        int visits      = VariantsStatisticsData.Sum(d => d.Value.Visits);
        int conversions = VariantsStatisticsData.Sum(d => d.Value.ConversionsCount);

        lblTotalVisitors.Text    = String.Format("{0:N0}", visits);
        lblTotalConversions.Text = String.Format("{0:N0}", conversions);

        if (TestStatus == ABTestStatusEnum.Finished)
        {
            txtDuration.ResourceString = "abtesting.daysrun";
        }

        DateTime start  = ABTest.ABTestOpenFrom;
        DateTime finish = GetFinishDateOrToday();

        lblDuration.Text = (finish - start).Days.ToString();
    }
    /// <summary>
    /// Loads summary box in the right upper corner.
    /// </summary>
    private void LoadSummaryBox()
    {
        var selectionParameters = new NodeSelectionParameters
        {
            AliasPath                 = ABTest.ABTestOriginalPage,
            CultureCode               = ABTest.ABTestCulture,
            SiteName                  = SiteContext.CurrentSiteName,
            SelectOnlyPublished       = true,
            CombineWithDefaultCulture = false
        };

        var node            = new TreeProvider().SelectSingleNode(selectionParameters);
        var shortUrl        = ShortenUrl(ABTest.ABTestOriginalPage);
        var encodedShortUrl = HTMLHelper.HTMLEncode(shortUrl);

        if (node == null)
        {
            lblTest.Text    = encodedShortUrl;
            lblTest.Visible = true;
        }
        else
        {
            lnkTest.HRef      = DocumentURLProvider.GetAbsoluteLiveSiteURL(node);
            lnkTest.InnerText = encodedShortUrl;
            lnkTest.Target    = "_blank";
            lnkTest.Visible   = true;
        }

        // If Visitors conversion methodology selected, use "Visitors" instead of "Visits"
        if (drpCountingMethodology.SelectedValue == ABTestConstants.ABSESSIONCONVERSION_FIRST)
        {
            lblVisits.ResourceString = "abtesting.overview.summary.visitors";
        }

        lblStatus.Text = ABTestStatusEvaluator.GetFormattedStatus(TestStatus).ToString();
        int visits      = VariantsStatisticsData.Sum(d => d.Value.Visits);
        int conversions = VariantsStatisticsData.Sum(d => d.Value.ConversionsCount);

        lblTotalVisitors.Text    = String.Format("{0:N0}", visits);
        lblTotalConversions.Text = String.Format("{0:N0}", conversions);

        if (TestStatus == ABTestStatusEnum.Finished)
        {
            txtDuration.ResourceString = "abtesting.daysrun";
        }

        DateTime start  = ABTest.ABTestOpenFrom;
        DateTime finish = GetFinishDate();

        lblDuration.Text = (finish - start).Days.ToString();
    }
    /// <summary>
    /// Handles Unigrid's OnExternalDataBound event.
    /// </summary>
    protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        string param = parameter.ToString();

        switch (sourceName.ToLowerCSafe())
        {
        case "status":
        {
            ABTestStatusEnum status;
            if (Enum.TryParse(param, out status))
            {
                return(ABTestStatusEvaluator.GetFormattedStatus(status));
            }
            break;
        }

        case "page":
            return(new HyperLink
            {
                NavigateUrl = DocumentURLProvider.GetUrl(param),
                Text = HTMLHelper.HTMLEncode(param),
                Target = "_blank"
            });

        case "visitors":
        case "conversions":
        {
            string statisticsCodeName = (sourceName.ToLowerCSafe() == "visitors" ? "abvisitfirst" : "absessionconversionfirst");

            ABTestInfo abTestInfo = ABTestInfoProvider.GetABTestInfo(param, SiteContext.CurrentSiteName);
            if (abTestInfo != null)
            {
                return(ValidationHelper.GetInteger(HitsInfoProvider.GetAllHitsInfo(SiteContext.CurrentSiteID, HitsIntervalEnum.Year, statisticsCodeName + ";" + abTestInfo.ABTestName + ";%", "SUM(HitsCount)", abTestInfo.ABTestCulture).Tables[0].Rows[0][0], 0));
            }

            return(0);
        }
        }

        return(null);
    }
    /// <summary>
    /// Handles Unigrid's OnExternalDataBound event.
    /// </summary>
    protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLowerInvariant())
        {
        case "status":
        {
            if (Enum.TryParse(parameter.ToString(), out ABTestStatusEnum status))
            {
                return(ABTestStatusEvaluator.GetFormattedStatus(status));
            }
            break;
        }

        case "page":
        {
            var dataRowView = parameter as DataRowView;
            if (dataRowView == null)
            {
                return(String.Empty);
            }

            var abTestInfo = new ABTestInfo(dataRowView.Row);

            var selectionParameters = new NodeSelectionParameters
            {
                AliasPath                 = abTestInfo.ABTestOriginalPage,
                CultureCode               = abTestInfo.ABTestCulture,
                SiteName                  = SiteContext.CurrentSiteName,
                SelectOnlyPublished       = true,
                CombineWithDefaultCulture = !SiteContext.CurrentSite.SiteIsContentOnly
            };

            var node            = new TreeProvider().SelectSingleNode(selectionParameters);
            var encodedTestPage = HTMLHelper.HTMLEncode(abTestInfo.ABTestOriginalPage);

            return(node == null
                        ? (object)encodedTestPage
                        : new HyperLink
                {
                    NavigateUrl = DocumentURLProvider.GetAbsoluteLiveSiteURL(node),
                    Text = encodedTestPage,
                    Target = "_blank"
                });
        }

        case "visitors":
        case "conversions":
        {
            string statisticsCodeName = (sourceName.ToLowerInvariant() == "visitors" ? "abvisitfirst" : "absessionconversionfirst");

            var dataRowView = parameter as DataRowView;
            if (dataRowView == null)
            {
                return(0);
            }

            var abTestInfo = new ABTestInfo(dataRowView.Row);

            return(ValidationHelper.GetInteger(HitsInfoProvider.GetAllHitsInfo(SiteContext.CurrentSiteID, HitsIntervalEnum.Year, statisticsCodeName + ";" + abTestInfo.ABTestName + ";%", "SUM(HitsCount)", abTestInfo.ABTestCulture).Tables[0].Rows[0][0], 0));
        }

        case "delete":
            CMSGridActionButton btn = (CMSGridActionButton)sender;
            btn.Enabled = IsAuthorizedToManage;
            if (!IsAuthorizedToManage)
            {
                btn.ToolTip = permissionsRequiredTooltip;
            }
            break;
        }

        return(null);
    }