/// <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); } }
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; } }
/// <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); }
/// <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; } }
/// <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; } }