private void Ok_Click(object sender, RoutedEventArgs e) { if (App.UserAccessLevel > AccessLevel.Manager) { MessageBox.Show("אינך מורשה לבצע שינויים בדף זה יש לפנות למנהל המערכת", "בעיה בהרשאות", MessageBoxButton.OK, MessageBoxImage.Error); return; } int parsedSwitchId; if (string.IsNullOrWhiteSpace(ManufacturingNumber_Box.Text) || !int.TryParse(ManufacturingNumber_Box.Text, out parsedSwitchId)) { MessageBox.Show("חובה להכניס מספר בתעשיה תקין", "מספר בתעשיה לא תקין", MessageBoxButton.OK, MessageBoxImage.Error); return; } using (MainModel modelContainer = new MainModel(App.WorkMode)) { try { Switch switchToEdit = null; if (IsNewSwitch) { switchToEdit = new Switch(); modelContainer.SwitchSet.Add(switchToEdit); } else { switchToEdit = modelContainer.SwitchSet.Single(x => x.Id == _switchIdToEdit); } switchToEdit.Name = CustomerName_Box.Text; switchToEdit.CrmNum = CustomerNum_Box.Text; switchToEdit.Id = parsedSwitchId; switchToEdit.MachineType = MachineType_ComboBox.Text; switchToEdit.SwRelease = Release_ComboBox.Text; switchToEdit.Comments = Comments_Box.Text; // add the switch if necessary, because all the connections depend on it modelContainer.SaveChanges(); if (!string.IsNullOrWhiteSpace(PbxPhoneNumber_Box.Text) || !string.IsNullOrWhiteSpace(PbxUserName_Box.Text) || !string.IsNullOrWhiteSpace(PbxPass_Box.Text) || !string.IsNullOrWhiteSpace(PbxDebugPass_Box.Text) || !string.IsNullOrWhiteSpace(PbxParDataStop_ComboBox.Text)) { PbxConnection pbxEditData = switchToEdit.PbxConnection; bool newPbxConnection = false; if (pbxEditData == null) { pbxEditData = new PbxConnection(); pbxEditData.SwitchId = switchToEdit.Id; modelContainer.PbxConnectionSet.Add(pbxEditData); } pbxEditData.DialNum = PbxPhoneNumber_Box.Text; int parsedBaudRate = 0; if (int.TryParse(PbxBoudrate_ComboBox.Text, out parsedBaudRate)) { pbxEditData.BaudRate = parsedBaudRate; } pbxEditData.LoginName = PbxUserName_Box.Text; pbxEditData.LoginPassword = PbxPass_Box.Text; pbxEditData.DebugPassword = PbxDebugPass_Box.Text; pbxEditData.ParDataStop = PbxParDataStop_ComboBox.Text; } if (!string.IsNullOrWhiteSpace(KolanPhoneNumber_Box.Text)) { KolanConnection kolanEditData = switchToEdit.KolanConnection; if (kolanEditData == null) { kolanEditData = new KolanConnection(); kolanEditData.SwitchId = switchToEdit.Id; modelContainer.KolanConnectionSet.Add(kolanEditData); } kolanEditData.DialNum = KolanPhoneNumber_Box.Text; int parsedKolanBaudRate = 0; if (int.TryParse(KolanBoudrate_ComboBox.Text, out parsedKolanBaudRate)) { kolanEditData.BaudRate = parsedKolanBaudRate; } kolanEditData.ParDataStop = KolanParDataStop_ComboBox.Text; } if (!string.IsNullOrWhiteSpace(TelnetAddress_Box.Text) || !string.IsNullOrWhiteSpace(TelnetUserNameCS_Box.Text) || !string.IsNullOrWhiteSpace(TelnetPassCS_Box.Text) || !string.IsNullOrWhiteSpace(TelnetUserNameSS_Box.Text) || !string.IsNullOrWhiteSpace(TelnetPasswordSS_Box.Text)) { TelnetConnection telnetEditData = switchToEdit.TelnetConnection; if (telnetEditData == null) { telnetEditData = new TelnetConnection(); telnetEditData.SwitchId = switchToEdit.Id; modelContainer.TelnetConnectionSet.Add(telnetEditData); } telnetEditData.IpAddress = TelnetAddress_Box.Text; telnetEditData.UsernameCs = TelnetUserNameCS_Box.Text; telnetEditData.PasswordCs = TelnetPassCS_Box.Text; telnetEditData.UsernameSs = TelnetUserNameSS_Box.Text; telnetEditData.PasswordSs = TelnetPasswordSS_Box.Text; } if (!string.IsNullOrWhiteSpace(ClientAddress_Box.Text) || !string.IsNullOrWhiteSpace(SiteName_Box.Text) || !string.IsNullOrWhiteSpace(NetworkUserName_Box.Text) || !string.IsNullOrWhiteSpace(NetworkPass_Box.Text) || !string.IsNullOrWhiteSpace(NetworkPort_Box.Text)) { CheckPointVpnConnection checkPointVpnConnectionEditData = switchToEdit.CheckPointVpnConnection; if (checkPointVpnConnectionEditData == null) { checkPointVpnConnectionEditData = new CheckPointVpnConnection(); checkPointVpnConnectionEditData.SwitchId = switchToEdit.Id; modelContainer.CheckPointVpnConnectionSet.Add(checkPointVpnConnectionEditData); } checkPointVpnConnectionEditData.IpAddress = ClientAddress_Box.Text; checkPointVpnConnectionEditData.Site = SiteName_Box.Text; checkPointVpnConnectionEditData.Username = NetworkUserName_Box.Text; checkPointVpnConnectionEditData.Password = NetworkPass_Box.Text; checkPointVpnConnectionEditData.Port = string.IsNullOrWhiteSpace(NetworkPort_Box.Text) ? (short?)null : short.Parse(NetworkPort_Box.Text); } modelContainer.SaveChanges(); MessageBox.Show("השינויים נשמרו בהצלחה"); SecondaryPage sp = new SecondaryPage(); Content = new Frame { Content = sp }; } catch (DbEntityValidationException ex) { string errors = string.Empty; foreach (DbEntityValidationResult validationError in ex.EntityValidationErrors) { foreach (DbValidationError dbValidationError in validationError.ValidationErrors) { errors += dbValidationError + "\n"; } } MessageBox.Show("בעיה בשמירת המתג:\n" + errors); } catch (Exception ex) { MessageBox.Show("בעיה בשמירת המתג." + ex); } } }
private void DialPbx_Click(object sender, RoutedEventArgs e) { string dialNum = null; string loginName = null; string loginPassword = null; long baudRate; int dataBits; int stopBits; int parity; string selectedCustomer = CustomerList_Box.SelectedItem.ToString(); string[] selectedCustomerArr = selectedCustomer.Split(' '); int switchIdSelcted = int.Parse(selectedCustomerArr[0]); using (MainModel modelContainer = new MainModel(App.WorkMode)) { PbxConnection allSwitchIdData = modelContainer.PbxConnectionSet.Single(s => s.SwitchId == switchIdSelcted); dialNum = allSwitchIdData.DialNum; loginName = allSwitchIdData.LoginName; loginPassword = allSwitchIdData.LoginPassword; if (allSwitchIdData.ParDataStop != null && allSwitchIdData.BaudRate != 0) { string[] parDataStopArr = allSwitchIdData.ParDataStop.Split('-'); switch (parDataStopArr[0]) { case "N": parity = 0; break; case "O": parity = 1; break; case "E": parity = 2; break; case "M": parity = 3; break; case "S": parity = 4; break; default: throw new Exception("unexpected parity: " + parDataStopArr[0]); } dataBits = int.Parse(parDataStopArr[1]); stopBits = int.Parse(parDataStopArr[2]); baudRate = allSwitchIdData.BaudRate; } else { parity = 0; dataBits = 8; stopBits = 1; baudRate = 9600; } } string filePath = WriteScript(dialNum, loginName, loginPassword, baudRate, parity, dataBits, stopBits); try { using (DdeClient client = new DdeClient("PW5", "System")) { client.Connect(); client.Execute($"EXECUTE {filePath}", 30); } } catch (Exception ex) { } Application.Current.MainWindow.WindowState = WindowState.Minimized; }
public EditPage(int?switchIdToEdit) { _switchIdToEdit = switchIdToEdit; InitializeComponent(); if (IsNewSwitch) { return; } using (MainModel modelContainer = new MainModel(App.WorkMode)) { Switch switchToEdit = modelContainer.SwitchSet.Single(x => x.Id == _switchIdToEdit); ManufacturingNumber_Box.Text = _switchIdToEdit.ToString(); CustomerNum_Box.Text = switchToEdit.CrmNum; Comments_Box.Text = switchToEdit.Comments; CustomerName_Box.Text = switchToEdit.Name; Release_ComboBox.Text = switchToEdit.SwRelease; MachineType_ComboBox.Text = switchToEdit.MachineType; PbxConnection allPbxData = switchToEdit.PbxConnection; if (allPbxData != null) { PbxPhoneNumber_Box.Text = allPbxData.DialNum; PbxUserName_Box.Text = allPbxData.LoginName; PbxPass_Box.Text = allPbxData.LoginPassword; PbxBoudrate_ComboBox.Text = allPbxData.BaudRate.ToString(); PbxDebugPass_Box.Text = allPbxData.DebugPassword; PbxParDataStop_ComboBox.Text = allPbxData.ParDataStop; } KolanConnection allKolanData = switchToEdit.KolanConnection; if (allKolanData != null) { KolanPhoneNumber_Box.Text = allKolanData.DialNum; KolanBoudrate_ComboBox.Text = allKolanData.BaudRate.ToString(); KolanParDataStop_ComboBox.Text = allKolanData.ParDataStop; } TelnetConnection allTelnetData = switchToEdit.TelnetConnection; if (allTelnetData != null) { TelnetAddress_Box.Text = allTelnetData.IpAddress; TelnetUserNameCS_Box.Text = allTelnetData.UsernameCs; TelnetPassCS_Box.Text = allTelnetData.PasswordCs; TelnetUserNameSS_Box.Text = allTelnetData.UsernameSs; TelnetPasswordSS_Box.Text = allTelnetData.PasswordSs; } CheckPointVpnConnection checkPointVpnConnection = switchToEdit.CheckPointVpnConnection; if (checkPointVpnConnection != null) { ClientAddress_Box.Text = checkPointVpnConnection.IpAddress; SiteName_Box.Text = checkPointVpnConnection.Site; NetworkUserName_Box.Text = checkPointVpnConnection.Username; NetworkPass_Box.Text = checkPointVpnConnection.Password; if (checkPointVpnConnection.Port != null) { NetworkPort_Box.Text = checkPointVpnConnection.Port.ToString(); } } RefreshFilesList(); } }
private void DoWork(DoWorkEventArgs args) { var workerArgs = (WorkerArgs)args.Argument; var size = 650; if (workerArgs.IsOsm) { _backgroundWorker.ReportProgress(0, "Идет загрузка графа"); var openFileDialog = new OpenFileDialog { DefaultExt = "*.osm|*.osm" }; openFileDialog.ShowDialog(); var fileName = openFileDialog.FileName; if (string.IsNullOrWhiteSpace(fileName)) { return; } MainModel.LoadGraphFromOsm(fileName); _backgroundWorker.ReportProgress(0, "Граф загружен"); Vertices = MainModel.GetVertices(); BlueConnections = MainModel.GetPlanarEdges(); return; } else { _backgroundWorker.ReportProgress(0, "Идет генерация графа"); MainModel.GenerateGraph( VertexCount, ConnectionPercent, size, Planarity == PlanarityType.Planar, NonPlanarConnectionPercent, GraphType, ReplaceConnections); Vertices = MainModel.GetVertices(); BlueConnections = MainModel.GetPlanarEdges(); GreenConnections = MainModel.GetNonPlanarEdges(); _backgroundWorker.ReportProgress(0, "Граф построен"); if (workerArgs.IsDrawOnly) { return; } } var avl = new List <double>(); var percolation = new List <double>(); var asp = new List <decimal>(); var clustering = new List <decimal>(); for (_currentExperiment = 0; _currentExperiment < ExperimentCount; _currentExperiment++) { _backgroundWorker.ReportProgress(0, $"Идет {_currentExperiment + 1}/{ExperimentCount} эксперимент.\r\nПодсчет характеристик."); if (!workerArgs.IsOsm || _currentExperiment == 0) { _backgroundWorker.ReportProgress(0, $"Идет {_currentExperiment + 1}/{ExperimentCount} эксперимент.\r\nСреднее количество связей на узел."); avl.Add(MainModel.GetAverageLinkCount()); _backgroundWorker.ReportProgress(0, $"Идет {_currentExperiment + 1}/{ExperimentCount} эксперимент.\r\nСредний минимальный путь."); asp.Add(MainModel.GetAverageShortestPath()); _backgroundWorker.ReportProgress(0, $"Идет {_currentExperiment + 1}/{ExperimentCount} эксперимент.\r\nКоэффициент кластеризации."); clustering.Add(MainModel.GetClusteringRatio()); } _currentPercent = 0; if (_backgroundWorker.CancellationPending) { args.Cancel = true; return; } _backgroundWorker.ReportProgress(0, $"Идет {_currentExperiment + 1}/{ExperimentCount} эксперимент"); var t = MainModel.GetPercolationThreshold(Experiment, 1d / ProbabilityCount, TryCount); if (percolation.Any()) { for (var j = 0; j < t.Count; j++) { percolation[j] += t[j]; } } else { percolation = t; } } for (var i = 0; i < percolation.Count; i++) { percolation[i] = (percolation[i] / ExperimentCount); } _backgroundWorker.ReportProgress(0, $"Идет подсчет значений"); double pt = 0; for (var i = 0; i < percolation.Count; i++) { if (percolation[i] >= 0.5) { pt = (double)i / percolation.Count; } } PercolationPoints = new List <DataPoint>(percolation.Select((d, i) => new DataPoint((double)i / percolation.Count, 1 - d))); ThresholdPoints = new List <DataPoint> { new DataPoint(pt, 0), new DataPoint(pt, 1) }; // ReSharper disable once AssignmentInConditionalExpression if (TrueThresholdVisibility = (GraphType == GraphType.CubicLattice)) { var trueValue = (Experiment == ExperimentType.Nodes ? 0.41 : 0.5); TrueThresholdPoints = new List <DataPoint> { new DataPoint(trueValue, 0), new DataPoint(trueValue, 1) }; } AverageLinkCount = Math.Round(avl.Sum() / avl.Count, 3); PercolationThreshold = Math.Round(pt, 3); AverageShortestPath = Math.Round(asp.Sum() / asp.Count, 3); ClusteringRatio = Math.Round(clustering.Sum() / clustering.Count, 3); }