public void VSOWorkItem_MetricCollector_Test()
        {
            var writer    = new VSOWorkItemDBMetricStorageWriter(this.config[SolutionConfigName.BIZ_DASHBOARD_DB_CONNECTION_STR].ToString());
            var collector = new VSOWorkItemCollector(writer, this.config);

            collector.CollectMetric();
        }
        public void VSOWorkItem_INSERT_Test()
        {
            var       writer = new VSOWorkItemDBMetricStorageWriter(this.config[SolutionConfigName.BIZ_DASHBOARD_DB_CONNECTION_STR].ToString());
            var       detail = new Dictionary <string, object>();
            const int id     = 99999;

            detail["Id"]           = id;
            detail["VSO"]          = "myvso";
            detail["Project"]      = "myProject";
            detail["System.Title"] = "myTitle";
            detail["System.Tags"]  = "myTag1; myTag2";
            var m1 = new Metric("Alert", MetricType.PullRequest, detail);

            writer.Write(m1);

            var title = DBUtil.GetAlert(this.config[SolutionConfigName.BIZ_DASHBOARD_DB_CONNECTION_STR].ToString(), id).fields["Title"];

            Assert.AreEqual("myTitle", title);
        }
        public SalesIntelligenceMetricCollectorWorker(SolutionConfig config)
        {
            APIPingUtil.LanuchPingThread(config[SolutionConfigName.DASHBOARD_APP_INSIGHT_KEY].ToString());

            var dbConnString = config[SolutionConfigName.BIZ_DASHBOARD_DB_CONNECTION_STR].ToString();

            //Create build info collector
            var buildWriter = new OffcialBuildDBMetricStorageWriter(dbConnString);

            this.buildCollector = new OfficialBuildDBMetricCollector(buildWriter, config);

            //Create PR info collector
            var prWriter = new PullRequestDBMetricStorageWriter(dbConnString);

            this.prCollector = new PullRequestDBMetricCollector(prWriter, config);

            //Create TestCoverage info collector
            var testCoverageWriter = new TestCoverageDBMetricStorageWriter(dbConnString);

            this.testCoverageCollector = new TestCoverageDBMetricCollector(testCoverageWriter, config);

            //Create TestRun collector, it collect result of test run triggered by build
            var buildTestrunWriter = new BuildTestRunDBMetricStorageWriter(dbConnString);

            this.buildTestRunCollector = new BuildTestRunDBMetricCollector(buildTestrunWriter, config);

            //Create TestRun collector, it collect result of test run triggered by build
            var releaseTestRunWriter = new ReleaseTestRunDBMetricStorageWriter(dbConnString);

            this.releaseTestRunCollector = new ReleaseTestRunDBMetricCollector(releaseTestRunWriter, config);

            //Create vso work item collector, it collects CriticalError and Customer Incident manaully tracked in VSO
            var vsoWorkItemWriter = new VSOWorkItemDBMetricStorageWriter(dbConnString);

            this.vsoWorkItemCollector = new VSOWorkItemCollector(vsoWorkItemWriter, config);
        }