Example #1
0
 public void PreCondition()
 {
     t      = TranslationProvider.GetTranslation("ua");
     driver = new DriverFactory().GetDriver();
     driver.Maximaze();
     driver.GoToURL();
 }
Example #2
0
        private void GetPreMatchData(DriverWrapper driver, List <aMatch> foundMatches)
        {
            var rowsCount = driver.FindElements(By.ClassName("genericRow")).Count();

            for (int i = 0; i < rowsCount; ++i)
            {
                var genItems = driver.FindElements(By.ClassName("genericRow"));

                IWebElement genItem = null;
                if (i < genItems.Count())
                {
                    genItem = genItems.ElementAt(i);

                    string leagueText = genItem.Text.Trim();
                    genItem.Click();
                    driver.ForceSleep(m_sleepTime);

                    ReadInformation(driver, foundMatches, leagueText, " 1 X 2");

                    IJavaScriptExecutor js = driver.Driver as IJavaScriptExecutor;
                    js.ExecuteScript("document.getElementById('HeaderBack').click()");

                    driver.ForceSleep(m_sleepTime);
                }
                else
                {
                    Console.WriteLine("Can't find item at index: " + i);
                    break;
                }
            }
        }
Example #3
0
 protected void StartWebDriver()
 {
     if (ds == null)
     {
         ds = GetDriverWrapper();
     }
 }
        public void Read_GivenInputWithNoValidSection_Throws()
        {
            var ex = Assert.Throws <InvalidYamlConfigurationFormatException>(() => DriverWrapper.ReadYaml(@"---
                  - paramKey"));

            Assert.That(ex.Message, Is.EqualTo("No valid section provided."));
        }
Example #5
0
        public void DriverWrapperTest()
        {
            DriverWrapper wrapperObject = DriverUtils.GetDriver();

            wrapperObject.Navigate().GoToUrl("http://www.google.co.in");
            string title = wrapperObject.Title;

            Assert.AreEqual(title, "Google");
            Type driverType = wrapperObject.GetType();

            Assert.AreEqual(driverType.Name, "DriverWrapper");
            string url = wrapperObject.Url;

            url.Contains("google");

            //Open another instance
            DriverWrapper wrapperObjectNew = DriverUtils.GetDriver();

            wrapperObjectNew.Navigate().GoToUrl("https://www.bing.com/");
            string title1 = wrapperObjectNew.Title;

            Assert.AreEqual(title1, "Bing");
            Type driverType1 = wrapperObjectNew.GetType();

            Assert.AreEqual(driverType1.Name, "DriverWrapper");
            string url1 = wrapperObjectNew.Url;

            url1.Contains("bing");
        }
        public void Read_GivenInputWithoutParametersSection_Throws()
        {
            var ex = Assert.Throws <InvalidYamlConfigurationFormatException>(() => DriverWrapper.ReadYaml(@"
                awkwardSection:
                  - paramKey"));

            Assert.That(ex.Message, Is.EqualTo("Missing `parameters` section."));
        }
Example #7
0
        public void Read_GivenSingleParamUnderParametersNode_ReadsParameterValueCorrectly()
        {
            var configuration = DriverWrapper.ReadYaml(@"---
                parameters:
                    - callTimeoutSeconds: 15");

            Assert.That(configuration.Parameters.ElementAt(0).DefaultValue, Is.EqualTo("15"));
        }
 public void Read_GivenParameterNotUnderParametersSection_Throws()
 {
     Assert.Throws <SourceReadException>(() => DriverWrapper.ReadYaml(@"
         parameters:
           - firstParam: 20
           
         - orphanParam: someValue"));
 }
Example #9
0
        public void Read_GivenTwoParamsUnderParametersNode_ReadsSecondParamValueCorrectly()
        {
            var configuration = DriverWrapper.ReadYaml(@"---
                parameters:
                    - callTimeoutSeconds: 15
                    - importLocation: //share/imports/");

            Assert.That(configuration.Parameters.ElementAt(1).DefaultValue, Is.EqualTo("//share/imports/"));
        }
        public void Read_GivenParameterWithMalformedProperties_Throws()
        {
            var ex = Assert.Throws <InvalidYamlConfigurationFormatException>(() => DriverWrapper.ReadYaml(@"---
                parameters:
                    - callTimeoutSeconds:
                        - value: 15"));

            Assert.That(ex.Message, Is.EqualTo("Invalid `callTimeoutSeconds` parameter definition."));
        }
Example #11
0
 public void CloseBrowser()
 {
     if ((ds != null) && (ds.CurrentDriver != null))
     {
         ds.CurrentDriver.Quit();
         ds.CurrentDriver = null;
         ds = null;
     }
 }
Example #12
0
        public void Read_GivenParameterWithDescription_ReadsParameterValueCorrectly()
        {
            var configuration = DriverWrapper.ReadYaml(@"---
                parameters:
                    - callTimeoutSeconds:
                        description: How long the system waits for the response to come
                        value: 15");

            Assert.That(configuration.Parameters.ElementAt(0).DefaultValue, Is.EqualTo("15"));
        }
        public void Read_GivenInputWithWrongYamlSyntax_ThrowsSourceReadExceptionWithInnerYamlSemanticErrorException()
        {
            var ex = Assert.Throws <SourceReadException>(() => DriverWrapper.ReadYaml(@"---
                parameters:
                  - key
                 - error"));

            Assert.That(ex.Message, Is.EqualTo("Invalid YAML syntax in configuration source provided."));
            Assert.That(ex.InnerException, Is.TypeOf <SemanticErrorException>());
        }
        public void Read_GivenParameterWithMalformedValueNode_Throws()
        {
            var ex = Assert.Throws <InvalidYamlConfigurationFormatException>(() => DriverWrapper.ReadYaml(@"---
                parameters:
                    - callTimeoutSeconds:
                        value:
                          default: 15"));

            Assert.That(ex.Message, Is.EqualTo("Invalid value definition for parameter `callTimeoutSeconds`."));
        }
        public void Read_GivenParameterUnderDifferentSection_Throws()
        {
            var ex = Assert.Throws <InvalidYamlConfigurationFormatException>(() => DriverWrapper.ReadYaml(@"
                parameters:
                  - firstParam: 20
                
                someOtherSection:
                  - renegadeParam: someValue"));

            Assert.That(ex.Message, Is.EqualTo("Unknown section `someOtherSection`."));
        }
        public void Read_GivenEnvironmentNamedDefault_Throws()
        {
            var ex = Assert.Throws <InvalidYamlConfigurationFormatException>(() => DriverWrapper.ReadYaml(@"---
                environments:
                    - default
                
                parameters:
                    - threadLimit: 10"));

            Assert.That(ex.Message, Is.EqualTo("`default` name is prohibited for environment name."));
        }
Example #17
0
        private void btnInitDriver_Click(object sender, EventArgs e)
        {
            try
            {
                DriverWrapper.DeviceStatusNotifyHandler       = OnDeviceStatusChanged;
                DriverWrapper.VehicleInfoReceiveNotifyHandler = OnVehicleInfoNotified;
                bool rel = DriverWrapper.Init(ConfigurationManager.AppSettings["ImageSavePath"]);

                if (rel)
                {
                    btnInitDriver.Text    = "已启动";
                    btnInitDriver.Enabled = false;
                    AppendText("初始化驱动完成");
                    //T_PathIdentifyEquip[] parentEquips = Cache.PathIdEquips.Where(it => it.ParentId == -1).ToArray();
                    foreach (T_PathIdentifyEquip equip in Cache.PathIdEquips)
                    {
                        try
                        {
                            //DriverWrapper.Connect(equip.ParentId);
                            bool connRel = DriverWrapper.GetConnectStatus(equip.Id);
                            if (connRel)
                            {
                                AppendText(string.Format("{0}设备连接成功。", equip.EquipName));
                                if (TreeNodeDict.Keys.Contains(equip.Id))
                                {
                                    TreeNodeDict[equip.Id].ImageIndex = 0;
                                }
                            }
                            else
                            {
                                AppendText(string.Format("{0}设备连接失败。", equip.EquipName));
                                if (TreeNodeDict.Keys.Contains(equip.Id))
                                {
                                    TreeNodeDict[equip.Id].ImageIndex = 1;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            AppendText(string.Format("{0}设备连接连接时发生异常:{1}", equip.EquipName, ex.Message));
                        }
                    }
                }
                else
                {
                    MessageBox.Show("初始化驱动发生异常!");
                    AppendText("初始化驱动发生异常!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("初始化驱动时发生异常,详细如下:\r\n" + ex.Message);
            }
        }
Example #18
0
        public void Read_GivenParameterWithSpecificValuePerEnvironment_ReadsDefaultValueNull()
        {
            var configuration = DriverWrapper.ReadYaml(@"---
                environments:
                    - local

                parameters:
                    - callTimeoutSeconds: 
                        value: 
                            - local: 15");

            Assert.That(configuration.Parameters.ElementAt(0).DefaultValue, Is.Null);
        }
Example #19
0
        public void Read_GivenTwoEnvironments_ReadsEnvironmentsCorrectly()
        {
            var configuration = DriverWrapper.ReadYaml(@"---
                environments:
                    - firstEnv
                    - secondEnv

                parameters:
                    - callTimeoutSeconds:
                        value: 10");

            Assert.That(configuration.Environments.ElementAt(0).Name, Is.EqualTo("firstEnv"));
            Assert.That(configuration.Environments.ElementAt(1).Name, Is.EqualTo("secondEnv"));
        }
Example #20
0
        public void Read_GivenParameterWithDefaultValueAlongWithEnvironments_ReadsParameterDefaultValueAlso()
        {
            var configuration = DriverWrapper.ReadYaml(@"---
                environments:
                    - dev
                    - test

                parameters:
                    - callTimeoutSeconds:
                        value:
                          - dev: 50
                          - default: 10");

            Assert.That(configuration.Parameters.ElementAt(0).DefaultValue, Is.EqualTo("10"));
        }
Example #21
0
        public void Read_GivenDefaultInBetweenEnvironmentValues_ReadsParameterDefaultValueCorrectly()
        {
            var configuration = DriverWrapper.ReadYaml(@"---
                environments:
                    - dev
                    - test

                parameters:
                    - callTimeoutSeconds:
                        value:
                          - dev: 50
                          - default: 10
                          - test: 40");

            Assert.That(configuration.Parameters.ElementAt(0).DefaultValue, Is.EqualTo("10"));
        }
Example #22
0
        public void Read_GivenParameterWithSameValuePerEnvironments_ReadsParameterDefaultValueOnly()
        {
            var configuration = DriverWrapper.ReadYaml(@"---
                environments:
                    - dev
                    - test

                parameters:
                    - callTimeoutSeconds: 15");

            Assert.That(configuration.Parameters.ElementAt(0).Values.ContainsKey(new ConfigurableEnvironment("dev")),
                        Is.False);
            Assert.That(configuration.Parameters.ElementAt(0).Values.ContainsKey(new ConfigurableEnvironment("test")),
                        Is.False);
            Assert.That(configuration.Parameters.ElementAt(0).DefaultValue, Is.EqualTo("15"));
        }
        private static DriverWrapper CreateDriver(TestConfiguration configuration, DesiredCapabilities capab)
        {
            DriverWrapper driver;

            try
            {
                if (configuration.GridType.Equals("grid2", StringComparison.OrdinalIgnoreCase))
                {
                    Logger.Info("Initalising remote driver for the Grid hub {0} \n Capabilities: {1}", configuration.HubURL, capab);
                    driver = new DriverWrapper(new RemoteWebDriver(new Uri(configuration.HubURL), capab));
                }
                else if (configuration.GridType.Equals("saucelabs", StringComparison.OrdinalIgnoreCase))
                {
                    capab.SetCapability("username", configuration.SauceLabsUserName);
                    capab.SetCapability("accessKey", configuration.SauceLabsAccessKey);
                    capab.SetCapability("name", Logger.Name);
                    Logger.Info("Initalising remote driver for the sauce {0} \n Capabilities: {1}", configuration.SauceURL, capab);
                    driver = new DriverWrapper(new RemoteWebDriver(new Uri(configuration.SauceURL), capab));
                    Logger.Info("SauceOnDemandSessionID={0} job-name={1}", ((DriverWrapper)driver).GetSessionId(), Logger.Name);
                }
                else if (configuration.GridType.Equals("local", StringComparison.OrdinalIgnoreCase))
                {
                    driver = GetLocalDriver(configuration.Browser);
                }
                else
                {
                    Logger.Info("Initalising local Firefox Browser");
                    driver = new DriverWrapper(new FirefoxDriver());
                }
            }
            catch (Exception e)
            {
                Logger.Error(e);
                throw;
            }

            driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(TestConfiguration.ImplicitTimeout));
            driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(TestConfiguration.JavascriptTimeout));
            driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(TestConfiguration.PageLoadTimeout));
            try
            {
                driver.Manage().Window.Maximize();
            }
            catch { }

            return(driver);
        }
Example #24
0
        public void Read_GivenParameterWithDistinctValuesPerEnvironments_ReadsParameterAssigningValuesPerEnvironments()
        {
            var configuration = DriverWrapper.ReadYaml(@"---
                environments:
                    - dev
                    - test

                parameters:
                    - callTimeoutSeconds: 
                        value: 
                            - dev: 20
                            - test: 30");

            Assert.That(configuration.Parameters.ElementAt(0).Values[new ConfigurableEnvironment("dev")],
                        Is.EqualTo("20"));
            Assert.That(configuration.Parameters.ElementAt(0).Values[new ConfigurableEnvironment("test")],
                        Is.EqualTo("30"));
        }
Example #25
0
        public void TableGettingRowsWithSpecificValue()
        {
            DriverWrapper driver = DriverUtils.GetDriver();

            try
            {
                //Magazine end
                driver.Navigate().GoToUrl("https://datatables.net/examples/basic_init/hidden_columns.html");
                //Initialising the table
                TableWithHeaders dataTableEx = new TableWithHeaders(driver, By.Id("example"));

                //Getting rows where the value in the 'Position' Column equals 'Software Engineer'
                List <TableRow> rows = dataTableEx.GetRowsContainingValue("Position", "Software Engineer");

                //iterating for each row
                foreach (var row in rows)
                {
                    /* Using the name of the column */

                    //In each row getting the td element corresponding to the 'Position' column
                    IWebElement TdElementCorrespondingToPosition = row["Position"];
                    Assert.AreEqual(TdElementCorrespondingToPosition.Text, "Software Engineer");


                    //Same td element can be got by passing the column name to the GetTableDataElement() method
                    TdElementCorrespondingToPosition = row.GetTableDataElement("Position");
                    Assert.AreEqual(TdElementCorrespondingToPosition.Text, "Software Engineer");

                    /* Using the index of the column */

                    //Same td element can be got using the index of the column (0 based index)
                    TdElementCorrespondingToPosition = row[1];
                    Assert.AreEqual(TdElementCorrespondingToPosition.Text, "Software Engineer");

                    //Same td element can be got by passing the index of the column (0 based index) to the GetTableDataElement() method
                    TdElementCorrespondingToPosition = row.GetTableDataElement(1);
                    Assert.AreEqual(TdElementCorrespondingToPosition.Text, "Software Engineer");
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public static DriverWrapper GetDriver(DesiredCapabilities capabilites)
        {
            if (_drivers == null)
            {
                _drivers = new List <DriverWrapper>();
            }

            DriverWrapper driver = CreateDriver(currentTestConfiguration, capabilites);

            _drivers.Add(driver);
            if (Config.IsConfigValuePresent("StartingUrl"))
            {
                String startingUrl = Config.GetConfigValue("StartingUrl");
                Logger.Info("Navigating to '{0}'.", startingUrl);
                driver.Navigate().GoToUrl(startingUrl);
            }

            return(driver);
        }
Example #27
0
        public void GetFirstRowWithTextEqualsAValue()
        {
            DriverWrapper driver = DriverUtils.GetDriver();

            try
            {
                //Magazine end
                driver.Navigate().GoToUrl("https://datatables.net/examples/basic_init/hidden_columns.html");
                //Initialising the table
                TableWithHeaders dataTableEx = new TableWithHeaders(driver, By.Id("example"));

                //Getting first row where the value in the 'Position' Column equals 'Software Engineer'
                TableRow row = dataTableEx["Position", "Software Engineer"];
                //In each row getting the td element corresponding to the 'Position' column
                IWebElement TdElementCorrespondingToPosition = row["Position"];
                Assert.AreEqual(TdElementCorrespondingToPosition.Text, "Software Engineer");
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #28
0
        protected DriverWrapper GetDriverWrapper()
        {
            DriverWrapper dw = null;

            if (dw == null)
            {
                if ((browserType == null) || (browserType.Equals("ie")))
                {
                    dw = new IeDriverSingleton();
                }
                else
                if ((browserType == null) || (browserType.Equals("chrome")))
                {
                    dw = new ChromeDriverSingleton();
                }
                else
                {
                    throw new Exception("Unknown browser '" + browserType + "'");
                }
            }

            return(dw);
        }
        public override void scan(int sleepTime = 0)
        {
            DriverWrapper driver = null;

            ScoreBoardFinder sbf = new ScoreBoardFinder(sleepTime);

            sbf.Start();

            while (true)
            {
                try
                {
                    if (driver == null)
                    {
                        driver = driverCreator.CreateDriver("");
                    }

                    var hstats = new Dictionary <string, int>();
                    var astats = new Dictionary <string, int>();

                    var copyOfTheList = sbf.GetWebBlobs();

                    log.Debug("There are " + copyOfTheList.Count() + " games in the blob list");
                    if (copyOfTheList.Count() == 0)
                    {
                        var downTime = 20000;
                        log.Debug("Going to sleep for " + downTime + " miiliseconds");
                        driver.ForceSleep(downTime);
                        continue;
                    }

                    foreach (var blob in copyOfTheList)
                    {
                        log.Debug("On the blob loop...");

                        string homeTeamName = blob.HomeTeam;
                        string awayTeamName = blob.AwayTeam;
                        string league       = blob.League;

                        string scoreUrl = blob.Url;

                        driver.Url = scoreUrl;
                        driver.DirtySleep(sleepTime);

                        string text = driver.GetElementText("//*[@id=\"commentaryContent\"]");

                        int totalDAs = -1;
                        int totalAs  = -1;
                        int totalCs  = -1;
                        int totalBs  = -1;

                        int homeDAs    = -1;
                        int homeAs     = -1;
                        int homeCs     = -1;
                        int homeBs     = -1;
                        int homeSonTs  = -1;
                        int homeSoffTs = -1;

                        int awayDAs    = -1;
                        int awayAs     = -1;
                        int awayCs     = -1;
                        int awayBs     = -1;
                        int awaySonTs  = -1;
                        int awaySoffTs = -1;

                        if (string.IsNullOrEmpty(text) == false)
                        {
                            var splits = text.Split('\n').ToList();

                            splits.RemoveAll(x => String.IsNullOrEmpty(x));
                            splits.RemoveAll(x => x[0] == ' ');
                            splits.RemoveAll(x => char.IsDigit(x[0]));

                            var distinct = splits.Distinct();

                            var query = distinct.Select(g => new { Name = g, Count = g.Count() });

                            splits.ForEach(x => x.Trim());

                            totalDAs = splits.Count(x => x.StartsWith("Dangerous Attack by"));
                            totalAs  = splits.Count(x => x.StartsWith("Attack by"));
                            totalCs  = splits.Count(x => x.StartsWith("Clearance by"));
                            totalBs  = splits.Count(x => x.StartsWith("Blocked Shot for"));

                            homeDAs    = splits.Count(x => x.StartsWith("Dangerous Attack by " + homeTeamName));
                            homeAs     = splits.Count(x => x.StartsWith("Attack by " + homeTeamName));
                            homeCs     = splits.Count(x => x.StartsWith("Clearance by " + homeTeamName));
                            homeBs     = splits.Count(x => x.StartsWith("Blocked Shot for " + homeTeamName));
                            homeSonTs  = splits.Count(x => x.StartsWith("Shot On Target for " + homeTeamName));
                            homeSoffTs = splits.Count(x => x.StartsWith("Shot Off Target for " + homeTeamName));

                            awayDAs    = splits.Count(x => x.StartsWith("Dangerous Attack by " + awayTeamName));
                            awayAs     = splits.Count(x => x.StartsWith("Attack by " + awayTeamName));
                            awayCs     = splits.Count(x => x.StartsWith("Clearance by " + awayTeamName));
                            awayBs     = splits.Count(x => x.StartsWith("Blocked Shot for " + awayTeamName));
                            awaySonTs  = splits.Count(x => x.StartsWith("Shot On Target for " + awayTeamName));
                            awaySoffTs = splits.Count(x => x.StartsWith("Shot Off Target for " + awayTeamName));

                            if (homeDAs + awayDAs != totalDAs)
                            {
                                if (homeDAs == 0)
                                {
                                    homeDAs = totalDAs - awayDAs;
                                }
                                if (awayDAs == 0)
                                {
                                    awayDAs = totalDAs - homeDAs;
                                }
                            }

                            if (homeAs + awayAs != totalAs)
                            {
                                if (homeAs == 0)
                                {
                                    homeAs = totalAs - awayAs;
                                }
                                if (awayAs == 0)
                                {
                                    awayAs = totalAs - homeAs;
                                }
                            }

                            if (homeCs + awayCs != totalCs)
                            {
                                if (homeCs == 0)
                                {
                                    homeCs = totalCs - awayCs;
                                }
                                if (awayCs == 0)
                                {
                                    awayCs = totalCs - homeCs;
                                }
                            }

                            if (homeBs + awayBs != totalBs)
                            {
                                if (homeBs == 0)
                                {
                                    homeBs = totalBs - awayBs;
                                }
                                if (awayBs == 0)
                                {
                                    awayBs = totalBs - homeBs;
                                }
                            }
                        }

                        log.Debug("Game:\t\t" + homeTeamName + " v " + awayTeamName);

                        if (String.IsNullOrEmpty(scoreUrl) == false)
                        {
                            string previewText = driver.GetElementText("//*[@id=\"previewContents\"]");
                            string time        = driver.GetElementText("//*[@id=\"time\"]");
                            string period      = driver.GetElementText("//*[@id=\"period\"]");

                            if (string.IsNullOrEmpty(time))
                            {
                                time = period;
                            }

                            //"Ivory Coast\r\nTogo\r\n56%\r\n44%"
                            //"TotalNormal Time1st Half2nd Half\r\nIvory Coast 2 0 5 5 1 5 18 22 1 0\r\nTogo 1 0 4 9 0 6 16 21 3 0"
                            bool clickedOk = driver.ClickElement("//*[@id=\"statisticsTab\"]");

                            if (!clickedOk)
                            {
                                log.Error("======> Click failed");
                            }

                            var    previewSplits = Regex.Split(previewText, "\r\n").ToList();
                            string aPossession   = previewSplits.Last().Replace("%", "");
                            previewSplits.RemoveAt(previewSplits.Count() - 1);
                            string hPossession = previewSplits.Last().Replace("%", "");

                            string statsText = driver.GetElementText("//*[@id=\"statsTable\"]/tbody");

                            string homeStatsText = Regex.Split(statsText, "\r\n").ToList().ElementAt(0);
                            string awayStatsText = Regex.Split(statsText, "\r\n").ToList().ElementAt(1);

                            var homeStatsList = Regex.Split(homeStatsText, " ").ToList();
                            var justHomeStats = homeStatsList.GetRange(homeStatsList.Count() - 10, 10);

                            var awayStatsList = Regex.Split(awayStatsText, " ").ToList();
                            var justAwayStats = awayStatsList.GetRange(awayStatsList.Count() - 10, 10);

                            hstats[statType[0]] = ParseInt(statType[0], hPossession);

                            for (int i = 0; i != 10; ++i)
                            {
                                int parseResult = ParseInt(statType[i + 1], justHomeStats[i]);
                                if (parseResult == -1 && (i == 0 || i == 5 || i == 8 || i == 9))
                                {
                                    hstats[statType[i + 1]] = 0;
                                }
                                else
                                {
                                    hstats[statType[i + 1]] = parseResult;
                                }
                            }

                            if (hstats[statType[3]] == -1)
                            {
                                hstats[statType[3]] = homeSonTs;
                            }

                            if (hstats[statType[4]] == -1)
                            {
                                hstats[statType[4]] = homeSoffTs;
                            }

                            hstats[statType[11]] = homeAs;
                            hstats[statType[12]] = homeDAs;
                            hstats[statType[13]] = homeBs;
                            hstats[statType[14]] = homeCs;

                            astats[statType[0]] = ParseInt(statType[0], aPossession);

                            for (int i = 0; i != 10; ++i)
                            {
                                int parseResult = ParseInt(statType[i + 1], justAwayStats[i]);
                                if (parseResult == -1 && (i == 0 || i == 5 || i == 8 || i == 9))
                                {
                                    astats[statType[i + 1]] = 0;
                                }
                                else
                                {
                                    astats[statType[i + 1]] = parseResult;
                                }
                            }

                            if (astats[statType[3]] == -1)
                            {
                                astats[statType[3]] = awaySonTs;
                            }

                            if (astats[statType[4]] == -1)
                            {
                                astats[statType[4]] = awaySoffTs;
                            }

                            astats[statType[11]] = awayAs;
                            astats[statType[12]] = awayDAs;
                            astats[statType[13]] = awayBs;
                            astats[statType[14]] = awayCs;

                            homeTeamName = DoSubstitutions(homeTeamName);
                            awayTeamName = DoSubstitutions(awayTeamName);
                            league       = DoSubstitutions(league);

                            bool homeTeamLongest = homeTeamName.Length > awayTeamName.Length;

                            log.Info("League:\t\t" + league + " at " + time);
                            log.Info(homeTeamName.PadRight(homeTeamLongest ? homeTeamName.Length + 1 : awayTeamName.Length + 1) + String.Join(" ", hstats.Values));
                            log.Info(awayTeamName.PadRight(homeTeamLongest ? homeTeamName.Length + 1 : awayTeamName.Length + 1) + String.Join(" ", astats.Values));

                            if (hstats.Keys.Any(x => x == "-1") || astats.Keys.Any(x => x == "-1"))
                            {
                                log.Warn("Bad Stat detected.... skipping");
                                continue;
                            }

                            string today     = DateTime.Now.ToUniversalTime().ToString("ddMMyy");
                            string yesterday = (DateTime.Today.ToUniversalTime() - TimeSpan.FromDays(1)).ToString("ddMMyy");
                            string finalName = Path.Combine(xmlPath, league, homeTeamName + " v " + awayTeamName + "_" + today + ".xml");

                            bool exists = File.Exists(finalName);

                            //edge case of games going over midnight
                            bool bOverMidnight = false;
                            if (exists == false)
                            {
                                string anotherName = Path.Combine(xmlPath, league, homeTeamName + " v " + awayTeamName + "_" + yesterday + ".xml");
                                if (File.Exists(anotherName))
                                {
                                    finalName     = anotherName;
                                    exists        = true;
                                    bOverMidnight = true;
                                }
                            }

                            SendToWebDelegate sd = new SendToWebDelegate(SendToWeb);
                            sd.BeginInvoke(league, bOverMidnight ? DateTime.Today.ToUniversalTime() - TimeSpan.FromDays(1) : DateTime.Now.ToUniversalTime(), homeTeamName, awayTeamName, hstats, astats, time, null, null);

                            WriteXmlDelegate wd = new WriteXmlDelegate(WriteXml);
                            wd.BeginInvoke(xmlPath, hstats, astats, homeTeamName, awayTeamName, league, time, exists, finalName, null, null);
                        }
                    }
                }
                catch (Exception ce)
                {
                    log.Error("Exception caught: " + ce);
                    if (driver != null)
                    {
                        driver.Quit();
                        driver.Dispose();
                        driver = null;
                    }
                }
            }
        }
Example #30
0
        private void EquipTreeContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            switch (e.ClickedItem.Name)
            {
            case "AddEquipToolStripMenuItem":
            {
                AddEquipForm form = new AddEquipForm();
                if (form.ShowDialog() == DialogResult.OK)
                {
                    InitEquipTree();
                }
            } break;

            case "ModifyEquipToolStripMenuItem":
            {
                if (EquipTreeView.SelectedNode != null && EquipTreeView.SelectedNode.Tag != null)
                {
                    T_PathIdentifyEquip equip = (T_PathIdentifyEquip)EquipTreeView.SelectedNode.Tag;
                    AddEquipForm        form  = new AddEquipForm(equip);
                    if (form.ShowDialog() == DialogResult.OK)
                    {
                        InitEquipTree();
                    }
                }
            } break;

            case "DelEquipToolStripMenuItem":
            {
                if (EquipTreeView.SelectedNode != null)
                {
                    if (EquipTreeView.SelectedNode.GetNodeCount(true) > 0)
                    {
                        if (MessageBox.Show("确定删除此节点设备及其下属所有设备?", "删除设备组", MessageBoxButtons.OKCancel
                                            , MessageBoxIcon.Question) == DialogResult.OK)
                        {
                            foreach (TreeNode node in EquipTreeView.SelectedNode.Nodes)
                            {
                                T_PathIdentifyEquip equip = (T_PathIdentifyEquip)node.Tag;
                                Cache.RemoveEquip(equip);
                                node.Remove();
                            }
                            T_PathIdentifyEquip selectedEquip = (T_PathIdentifyEquip)EquipTreeView.SelectedNode.Tag;
                            Cache.RemoveEquip(selectedEquip);
                            EquipTreeView.SelectedNode.Remove();
                        }
                    }
                    else
                    {
                        if (MessageBox.Show("确定删除此节点设备设备?", "删除设备", MessageBoxButtons.OKCancel
                                            , MessageBoxIcon.Question) == DialogResult.OK)
                        {
                            T_PathIdentifyEquip selectedEquip = (T_PathIdentifyEquip)EquipTreeView.SelectedNode.Tag;
                            Cache.RemoveEquip(selectedEquip);
                            EquipTreeView.SelectedNode.Remove();
                        }
                    }
                    InitEquipTree();
                }
            } break;

            case "ProofTimeToolStripMenuItem":
            {
                AppendText("设备校时开始");
                if (EquipTreeView.SelectedNode != null)
                {
                    T_PathIdentifyEquip selectedEquip = (T_PathIdentifyEquip)EquipTreeView.SelectedNode.Tag;
                    bool rel = DriverWrapper.ProofTime(selectedEquip.Id);
                    if (rel)
                    {
                        AppendText(string.Format("设备-{0}校时成功。", selectedEquip.EquipName));
                    }
                    else
                    {
                        AppendText(string.Format("设备-{0}校时失败。", selectedEquip.EquipName));
                    }
                }
                else
                {
                    AppendText("设备树上未选择有效的设备");
                }
                AppendText("设备校时结束");
            } break;

            case "RetransDataToolStripMenuItem":
            {
                AppendText("设置重传...");
                if (EquipTreeView.SelectedNode != null)
                {
                    T_PathIdentifyEquip selectedEquip = (T_PathIdentifyEquip)EquipTreeView.SelectedNode.Tag;
                    RetransDataForm     form          = new RetransDataForm();
                    if (form.ShowDialog() == DialogResult.OK)
                    {
                        bool rel = DriverWrapper.SetRetransData(selectedEquip.Id, form.StartTime, form.EndTime);
                        if (rel)
                        {
                            AppendText(string.Format("设备-{0}设置重传成功。StartTime:{1}-EndTime:{2}"
                                                     , selectedEquip.EquipName, form.StartTime, form.EndTime));
                        }
                        else
                        {
                            AppendText(string.Format("设备-{0}设置重传失败。StartTime:{1}-EndTime:{2}"
                                                     , selectedEquip.EquipName, form.StartTime, form.EndTime));
                        }
                    }
                    else
                    {
                        AppendText("设置重传取消");
                    }
                }
                else
                {
                    AppendText("设备树上未选择有效的设备");
                }
                AppendText("设置重传完成");
            } break;

            case "AllExpendToolStripMenuItem":
            {
                EquipTreeView.ExpandAll();
            } break;

            case "AllCollapseToolStripMenuItem":
            {
                EquipTreeView.CollapseAll();
            } break;
            }
        }