public void PreCondition() { t = TranslationProvider.GetTranslation("ua"); driver = new DriverFactory().GetDriver(); driver.Maximaze(); driver.GoToURL(); }
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; } } }
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.")); }
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.")); }
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")); }
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.")); }
public void CloseBrowser() { if ((ds != null) && (ds.CurrentDriver != null)) { ds.CurrentDriver.Quit(); ds.CurrentDriver = null; ds = null; } }
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.")); }
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); } }
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); }
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")); }
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")); }
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")); }
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); }
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")); }
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); }
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; } }
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; } } } }
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; } }