public override IEnumerable <TestingSearchResultItem> GetHistoricalTests(DataUri hostItemDataUri = null, string searchText = null)
        {
            TestingSearch testingSearch = new TestingSearch();

            if (hostItemDataUri != null)
            {
                testingSearch.HostItem = hostItemDataUri;
            }
            if (!string.IsNullOrEmpty(searchText))
            {
                testingSearch.SearchText = searchText;
            }
            IEnumerable <TestingSearchResultItem> stoppedTests = testingSearch.GetStoppedTests();
            List <TestingSearchResultItem>        list         = new List <TestingSearchResultItem>();

            foreach (TestingSearchResultItem item2 in stoppedTests)
            {
                if (item2.Uri != null)
                {
                    Item item = Database.GetItem(item2.Uri);
                    if (item != null)
                    {
                        TestDefinitionItem testDefinitionItem = TestDefinitionItem.Create(item);
                        if (testDefinitionItem != null && testDefinitionItem.IsFinished)
                        {
                            list.Add(item2);
                        }
                    }
                }
            }
            return(list);
        }
        private static void UpdateTestSettings(MultivariateTestDefinitionItem testDefinition)
        {
            Sitecore.Diagnostics.Assert.ArgumentNotNull(testDefinition, "testDefinition");
            if (Sitecore.Web.WebEditUtil.Testing.CurrentSettings != null)
            {
                return;
            }
            bool flag = TestingUtil.MultiVariateTesting.IsTestRunning(testDefinition);

            Sitecore.Web.WebEditUtil.Testing.CurrentSettings = new Sitecore.Web.WebEditUtil.Testing.TestSettings(testDefinition, Sitecore.Web.WebEditUtil.Testing.TestType.Multivariate, flag);
            if (!flag)
            {
                return;
            }
            TestDefinitionItem testDefinitionItem = (TestDefinitionItem)testDefinition;

            Sitecore.Diagnostics.Assert.IsNotNull(testDefinitionItem, "testDefinitionItem");
            PageStatisticsContext.SaveTestStatisticsToSession(PageStatisticsContext.GetTestStatistics(testDefinitionItem, true, false));
        }
        /// <summary>
        /// Displays the Achieved Goals datatable
        /// </summary>
        private void LoadAchievedGoals()
        {
            if (TestComponentItem.IsNull() || TestDefinitionItem.IsNull() || GoalItem.IsNull())
            {
                return;
            }

            DateTime startTime = DateTime.MinValue;

            if (beginDatePicker.SelectedDate.HasValue)
            {
                startTime = beginDatePicker.SelectedDate.Value;
            }

            DateTime endTime = DateTime.MaxValue;

            if (endDatePicker.SelectedDate.HasValue)
            {
                endTime = endDatePicker.SelectedDate.Value;
            }

            List <VisitVariation> achievedGoals = PageStatistics.GetAchievedGoals(GoalItem, TestDefinitionItem, startTime,
                                                                                  endTime);

            if (achievedGoals == null || achievedGoals.Count == 0)
            {
                ShowErrors(new List <string> {
                    "No data available for the selected parameters"
                });
                return;
            }

            litAchievedGoal.Text        = TestComponentItem.Name;
            rptAchievedGoals.DataSource = achievedGoals;
            rptAchievedGoals.DataBind();
            plcAchievedGoalData.Visible = true;
            plcReport.Visible           = true;

            //set totals which are summed up during the databinding process
            litTotalVisitCount.Text    = TotalVisitCount.ToString("N0");
            litTotalAchievedCount.Text = TotalAchievedGoalCount.ToString("N0");
        }
        /// <summary>
        /// Fills out the report information section of the report
        /// </summary>
        private void SetTestInformation()
        {
            if (TestDefinitionItem.IsNull())
            {
                return;
            }

            TestDefinitionItem testDefinition = new TestDefinitionItem(TestDefinitionItem);
            IWorkflow          workflow       = TestDefinitionItem.State.GetWorkflow();
            DateTime           testStartDate  = DateTime.MinValue;
            DateTime           testFinishDate = DateTime.MinValue;

            if (workflow != null)
            {
                WorkflowEvent testStartEvent = workflow.GetHistory(TestDefinitionItem).LastOrDefault <WorkflowEvent>(w => w.NewState == Sitecore.Analytics.Data.Items.TestDefinitionItem.StateIDs.Deployed);
                if (testStartEvent != null)
                {
                    testStartDate = testStartEvent.Date;
                }

                WorkflowEvent testFinishEvent = workflow.GetHistory(TestDefinitionItem).LastOrDefault <WorkflowEvent>(w => w.NewState == Sitecore.Analytics.Data.Items.TestDefinitionItem.StateIDs.Completed);
                if (testFinishEvent != null)
                {
                    testFinishDate = testFinishEvent.Date;
                }
            }

            //start date
            litTestStarted.Text = "Test has not started";
            if (testStartDate != DateTime.MinValue && testStartDate != DateTime.MaxValue)
            {
                litTestStarted.Text = testStartDate.ToString("MMMM dd, yyyy");
            }

            //end date
            litTestEnded.Text = "Test has not completed";
            if (testFinishDate != DateTime.MinValue && testFinishDate != DateTime.MaxValue)
            {
                litTestEnded.Text = testFinishDate.ToString("MMMM dd, yyyy");
            }

            if (testDefinition.IsRunning)
            {
                litProgress.Text = "Running";
            }
            else if (testDefinition.IsFinished)
            {
                litProgress.Text = "Finished";
            }
            else if (testDefinition.IsDraft)
            {
                litProgress.Text = "Draft";
            }
            else if (testDefinition.IsDeployed)
            {
                litProgress.Text = "Deployed";
            }
            else
            {
                litProgress.Text = "N/A";
            }
        }
        /// <summary>
        /// Returns a list of errors
        /// </summary>
        /// <returns></returns>
        private List <string> IsFormValid(bool phase1Only)
        {
            List <string> errorList = new List <string>();

            //test dropdown
            if (string.IsNullOrEmpty(ddlTest.SelectedValue))
            {
                errorList.Add("Select a test");
            }

            //test item
            if (!string.IsNullOrEmpty(ddlTest.SelectedValue) && (TestComponentItem.IsNull() || TestDefinitionItem.IsNull()))
            {
                errorList.Add("The test item is null");
            }

            if (phase1Only)
            {
                return(errorList);
            }

            //test dropdown
            if (string.IsNullOrEmpty(ddlGoal.SelectedValue))
            {
                errorList.Add("Select a goal");
            }

            //test item
            if (!string.IsNullOrEmpty(ddlGoal.SelectedValue) && Database.GetItem(ddlGoal.SelectedValue).IsNull())
            {
                errorList.Add("The goal item is null");
            }

            //start date
            if (beginDatePicker.SelectedDate == null || beginDatePicker.SelectedDate == DateTime.MinValue)
            {
                errorList.Add("Select a start date");
            }

            //enddate
            if (endDatePicker.SelectedDate == null || endDatePicker.SelectedDate == DateTime.MinValue)
            {
                errorList.Add("Select an end date");
            }

            if (beginDatePicker.SelectedDate != null &&
                endDatePicker.SelectedDate != null &&
                beginDatePicker.SelectedDate > endDatePicker.SelectedDate)
            {
                errorList.Add("Select a start date that is before the end date");
            }

            return(errorList);
        }
 public TestSetStatistics GetTestStatistics(TestDefinitionItem testDefinitionItem, bool ignoreSession, bool ignoreCache)
 {
     Assert.IsNotNull(testDefinitionItem, "testDefinitionItem");
     return(TestManager.LoadTestStatistics(testDefinitionItem));
 }
 public TestSetStatistics GetTestStatistics(TestDefinitionItem testDefinitionItem)
 {
     return(GetTestStatistics(testDefinitionItem, false, false));
 }
 public TestSetStatistics GetTestStatistics(TestDefinitionItem testDefinitionItem, bool ignoreSession, bool ignoreCache)
 {
     Assert.IsNotNull(testDefinitionItem, "testDefinitionItem");
     return TestManager.LoadTestStatistics(testDefinitionItem);
 }
 public TestSetStatistics GetTestStatistics(TestDefinitionItem testDefinitionItem)
 {
     return GetTestStatistics(testDefinitionItem, false, false);
 }
        /// <summary>
        /// Fills out the report information section of the report
        /// </summary>
        private void SetTestInformation()
        {
            if(TestDefinitionItem.IsNull())
            {
                return;
            }

            TestDefinitionItem testDefinition = new TestDefinitionItem(TestDefinitionItem);
            IWorkflow workflow = TestDefinitionItem.State.GetWorkflow();
            DateTime testStartDate = DateTime.MinValue;
            DateTime testFinishDate = DateTime.MinValue;
            if (workflow != null)
            {
                WorkflowEvent testStartEvent = workflow.GetHistory(TestDefinitionItem).LastOrDefault<WorkflowEvent>(w => w.NewState == Sitecore.Analytics.Data.Items.TestDefinitionItem.StateIDs.Deployed);
                if (testStartEvent != null)
                {
                    testStartDate = testStartEvent.Date;
                }

                WorkflowEvent testFinishEvent = workflow.GetHistory(TestDefinitionItem).LastOrDefault<WorkflowEvent>(w => w.NewState == Sitecore.Analytics.Data.Items.TestDefinitionItem.StateIDs.Completed);
                if (testFinishEvent != null)
                {
                    testFinishDate = testFinishEvent.Date;
                }
            }

            //start date
            litTestStarted.Text = "Test has not started";
            if (testStartDate != DateTime.MinValue && testStartDate != DateTime.MaxValue)
            {
                litTestStarted.Text = testStartDate.ToString("MMMM dd, yyyy");
            }

            //end date
            litTestEnded.Text = "Test has not completed";
            if (testFinishDate != DateTime.MinValue && testFinishDate != DateTime.MaxValue)
            {
                litTestEnded.Text = testFinishDate.ToString("MMMM dd, yyyy");
            }

            if (testDefinition.IsRunning)
            {
                litProgress.Text = "Running";
            }
            else if (testDefinition.IsFinished)
            {
                litProgress.Text = "Finished";
            }
            else if (testDefinition.IsDraft)
            {
                litProgress.Text = "Draft";
            }
            else if (testDefinition.IsDeployed)
            {
                litProgress.Text = "Deployed";
            }
            else
            {
                litProgress.Text = "N/A";
            }
        }