Exemplo n.º 1
0
    /// <summary>
    /// Returns information message according to current state, issue and A/B test.
    /// </summary>
    /// <param name="currState">Current state</param>
    /// <param name="issue">Issue</param>
    /// <param name="winnerOption">Winner option</param>
    private string GetInfoMessage(VariantStatusEnum currState, IssueInfo issue, ABTestWinnerSelectionEnum winnerOption)
    {
        if (issue == null)
        {
            return(null);
        }

        switch (currState)
        {
        case VariantStatusEnum.WaitingToSend:
            return(GetString("Newsletter_Issue_Header.NotSentYet"));

        case VariantStatusEnum.WaitingToSelectWinner:
            return(GetWaitingToSelectWinnerInfoMessage(issue, winnerOption));

        case VariantStatusEnum.ReadyForSending:
            return(String.Format(GetString("newsletterinfo.issuescheduledwinnerselmanually"), GetTimeOrNA(issue.IssueMailoutTime), GetWinnerSelectionTime()));

        case VariantStatusEnum.ReadyForTesting:
            return(GetReadyForTestingInfoMessage(winnerOption));

        case VariantStatusEnum.Finished:
            return(GetFinishedInfoMessage(issue, winnerOption));

        default:
            return(null);
        }
    }
Exemplo n.º 2
0
    private void InitControlsForIssueUsedInAutomation(VariantStatusEnum currentState, bool forceReload)
    {
        lblAdditionalInfo.Visible  = false;
        lhdSizeOfTestGroup.Visible = false;
        pnlSlider.Visible          = false;

        switch (currentState)
        {
        case VariantStatusEnum.WaitingToSend:
            InitMailoutControlForIssueUsedInAutomation(false, false);
            InitWinnerOption(Enabled, mABTest, forceReload);
            break;

        case VariantStatusEnum.ReadyForTesting:
        case VariantStatusEnum.WaitingToSelectWinner:
            InitMailoutControlForIssueUsedInAutomation(true, true);
            InitWinnerOption(Enabled, mABTest, forceReload);
            break;

        case VariantStatusEnum.ReadyForSending:
        case VariantStatusEnum.Finished:
            InitMailoutControlForIssueUsedInAutomation(true, false);
            InitWinnerOption(false, mABTest, forceReload);
            break;
        }
    }
Exemplo n.º 3
0
    /// <summary>
    /// Reloads control data.
    /// </summary>
    /// <param name="forceReload">Indicates if force reload should be used</param>
    public override void ReloadData(bool forceReload)
    {
        if (StopProcessing && !forceReload)
        {
            return;
        }

        var parentIssueId = 0;

        mParentIssue = IssueInfoProvider.GetOriginalIssue(IssueID);
        if (mParentIssue != null)
        {
            parentIssueId = mParentIssue.IssueID;
        }

        // Get A/B test configuration
        mABTest = ABTestInfoProvider.GetABTestInfoForIssue(parentIssueId);
        if (mABTest == null)
        {
            // Ensure A/B test object with default settings
            mABTest = new ABTestInfo
            {
                TestIssueID = parentIssueId, TestSizePercentage = 50, TestWinnerOption = ABTestWinnerSelectionEnum.Manual
            };
            ABTestInfo.Provider.Set(mABTest);
        }

        CurrentState = GetCurrentState(mParentIssue);
        if (mParentIssue.IssueForAutomation)
        {
            InitControlsForIssueUsedInAutomation(CurrentState, forceReload);
        }
        else
        {
            InitControls(CurrentState, forceReload);
        }

        ucMailout.ParentIssueID = parentIssueId;
        ucMailout.ReloadData(forceReload);

        InfoMessage = GetInfoMessage(CurrentState, mParentIssue, mABTest?.TestWinnerOption ?? ABTestWinnerSelectionEnum.Manual);

        // Init test group slider
        InitTestGroupSlider(mParentIssue, mABTest, forceReload);
    }
Exemplo n.º 4
0
    /// <summary>
    /// Initializes controls
    /// </summary>
    /// <param name="currentState">Current state of the control (controls are initializes according this value)</param>
    /// <param name="forceReload">Indicates if force data reload should be performed</param>
    private void InitControls(VariantStatusEnum currentState, bool forceReload)
    {
        switch (currentState)
        {
        case VariantStatusEnum.Finished:
        case VariantStatusEnum.ReadyForSending:
            ucGroupSlider.Enabled = false;

            InitMailoutControlForIssue(false, false, false, false);
            InitWinnerOption(false, mABTest, forceReload);

            lblAdditionalInfo.Visible = true;
            lblAdditionalInfo.Text    = GetString("newsletterissue_send.variantsendingfinished");
            break;

        case VariantStatusEnum.ReadyForTesting:
            ucGroupSlider.Enabled = Enabled;

            InitMailoutControlForIssue(false, true, true, false);
            InitWinnerOption(Enabled, mABTest, forceReload);

            lblAdditionalInfo.Visible = true;
            lblAdditionalInfo.Text    = GetString("newsletterissue_send.infovariantsending");
            break;

        case VariantStatusEnum.WaitingToSelectWinner:
            ucGroupSlider.Enabled = false;

            InitMailoutControlForIssue(true, false, true, false);
            InitWinnerOption(Enabled, mABTest, forceReload);

            lblAdditionalInfo.Visible = true;
            lblAdditionalInfo.Text    = GetString("newsletterissue_send.infowaitingtoselwinner");
            break;

        case VariantStatusEnum.WaitingToSend:
            ucGroupSlider.Enabled = Enabled;

            InitMailoutControlForIssue(false, true, true, true);
            InitWinnerOption(Enabled, mABTest, forceReload);
            break;
        }
    }
Exemplo n.º 5
0
    /// <summary>
    /// Initializes controls
    /// </summary>
    /// <param name="currState">Current state of the control (controls are initializes according this value)</param>
    /// <param name="forceReload">Indicates if force data reload should be performed</param>
    private void InitControls(VariantStatusEnum currState, bool forceReload)
    {
        switch (currState)
        {
            case VariantStatusEnum.Finished:
            case VariantStatusEnum.ReadyForSending:
                ucGroupSlider.Enabled = false;
                ucMailout.ShowSelectWinnerAction = false;
                ucMailout.ShowSentEmails = true;
                ucMailout.ShowDeliveredEmails = true;
                ucMailout.ShowOpenedEmails = true;
                ucMailout.ShowUniqueClicks = true;
                ucMailout.ShowIssueStatus = true;
                ucMailout.ShowSelectionColumn = false;
                ucMailout.EnableMailoutTimeSetting = false;
                InitWinnerOption(false, mABTest, forceReload);
                lblAdditionalInfo.Visible = true;
                lblAdditionalInfo.Text = GetString("newsletterissue_send.variantsendingfinished");
                break;
            case VariantStatusEnum.ReadyForTesting:
                ucGroupSlider.Enabled = true;
                ucMailout.ShowSelectWinnerAction = false;
                ucMailout.ShowSentEmails = true;
                ucMailout.ShowDeliveredEmails = true;
                ucMailout.ShowOpenedEmails = true;
                ucMailout.ShowUniqueClicks = true;
                ucMailout.ShowIssueStatus = true;
                ucMailout.ShowSelectionColumn = true;
                ucMailout.EnableMailoutTimeSetting = true;
                ucMailout.OnChanged -= ucMailout_OnChanged;
                ucMailout.OnChanged += ucMailout_OnChanged;
                InitWinnerOption(true, mABTest, forceReload);
                lblAdditionalInfo.Visible = true;
                lblAdditionalInfo.Text = GetString("newsletterissue_send.infovariantsending");

                break;
            case VariantStatusEnum.WaitingToSelectWinner:
                ucGroupSlider.Enabled = false;
                ucMailout.ShowSelectWinnerAction = true;
                ucMailout.ShowSentEmails = true;
                ucMailout.ShowDeliveredEmails = true;
                ucMailout.ShowOpenedEmails = true;
                ucMailout.ShowUniqueClicks = true;
                ucMailout.ShowIssueStatus = true;
                ucMailout.ShowSelectionColumn = false;
                ucMailout.EnableMailoutTimeSetting = true;
                ucMailout.OnChanged -= ucMailout_OnChanged;
                ucMailout.OnChanged += ucMailout_OnChanged;
                InitWinnerOption(true, mABTest, forceReload);
                lblAdditionalInfo.Visible = true;
                lblAdditionalInfo.Text = GetString("newsletterissue_send.infowaitingtoselwinner");
                break;

            case VariantStatusEnum.WaitingToSend:
                ucMailout.UseGroupingText = true;
                ucGroupSlider.Enabled = true;
                ucMailout.OnChanged -= ucMailout_OnChanged;
                ucMailout.OnChanged += ucMailout_OnChanged;
                InitWinnerOption(true, mABTest, forceReload);
                lblAdditionalInfo.Visible = false;
                break;
        }
    }