Beispiel #1
0
        /// <summary>
        /// Checks existing test for required Conversions.
        /// If either of 2 required Conversions are not defined, created then and save.
        /// </summary>
        private void AssignPageVisitConversions()
        {
            var modified = false;

            // Page visit conversion
            if (!ABTest.ABTestConversionConfiguration.TryGetConversionByOriginalName(ABTestConversionNames.PAGE_VISIT, out ABTestConversion pageVisitConversion))
            {
                pageVisitConversion = new ABTestConversion(ABTestConversionNames.PAGE_VISIT, "/page-visit/uri");

                modified = true;
                ABTest.ABTestConversionConfiguration.AddConversion(pageVisitConversion);
            }

            PageVisitConversionName = pageVisitConversion.ConversionName;

            // Purchase conversion
            if (!ABTest.ABTestConversionConfiguration.TryGetConversion(ABTestConversionNames.PURCHASE, out _))
            {
                var purchaseConversion = new ABTestConversion(ABTestConversionNames.PURCHASE);

                modified = true;
                ABTest.ABTestConversionConfiguration.AddConversion(purchaseConversion);
            }

            // If any of the conversions were created, then save resulting test to DB
            if (modified)
            {
                ABTestInfo.Provider.Set(ABTest);
            }
        }
Beispiel #2
0
    /// <summary>
    /// Creates new <see cref="ABTestConversion"/> object based on inputs.
    /// </summary>
    private ABTestConversion CreateConversion()
    {
        if (!IsValid())
        {
            return(null);
        }

        var conversionValue = ValidationHelper.GetDecimal(txtValue.Text, txtValue.WatermarkText == DEFAULT_PLACEHOLDER_VALUE ? 1m : 0m);
        var conversion      = new ABTestConversion(SelectedConversion, mItemSelector?.Value.ToString(), conversionValue);

        conversion.RelatedItemDisplayName = mItemSelector?.ValueDisplayName;

        return(conversion);
    }