public static void DownloadXLSX() { using (var wc = new WebClient()) { wc.DownloadFile(Config.XLSXAddress, Config.PathToXLSX); } ThreatCollection.Clear(); using (var fs = new FileStream(Config.PathToXLSX, FileMode.Open)) { using (var reader = ExcelReaderFactory.CreateReader(fs)) { int infofields = 0; while (reader.Read()) { if (infofields < 2) { infofields++; continue; } var threat = new Threat(); threat.Id = int.Parse(reader.GetValue(0).ToString()); threat.Name = reader.GetString(1); threat.Description = reader.GetString(2); threat.Sources = ThreatSource.GetThreatSources(reader.GetString(3)); threat.ImpactObject = reader.GetString(4); threat.BreachOfConfidentiality = GetBoolean(reader.GetValue(5).ToString()); threat.BreachOfIntegrity = GetBoolean(reader.GetValue(6).ToString()); threat.BreachOfAvailability = GetBoolean(reader.GetValue(7).ToString()); threat.DateOfIncluding = reader.GetDateTime(8); threat.DateOfLastChange = reader.GetDateTime(9); ThreatCollection.Add(new ThreatShortForm(threat)); SaveToJSON(); Config.LastUpdate = DateTime.Now; } } } }
public bool Equals(Threat thr) { if (thr is null) { return(false); } return(Id.Equals(thr.Id) && Name.Equals(thr.Name) && Description.Equals(thr.Description) && ThreatSource.Equals(thr.ThreatSource) && InteractionObject.Equals(thr.InteractionObject) && ConfidentialityBreach.Equals(thr.ConfidentialityBreach) && IntegrityBreach.Equals(thr.IntegrityBreach) && AccessBreach.Equals(thr.AccessBreach)); }
public void enterTabPageThreatsList(object sender, EventArgs e) { mf.dgvActualTCUIThreats.Rows.Clear(); ThreatSource ts = new ThreatSource { Potencial = getMaxIntrPot(IS.listOfSources) }; if (ts.Potencial == -1) { MessageBox.Show("Перед определением актуальных угроз утечки информации по техническим каналам выберите нарушителя в соответствующей вкладке."); mf.tabControlTCUI.SelectedTab = mf.tabControlTCUI.TabPages[0]; mf.treeView.SelectedNode = mf.returnTreeNode("tnIntruder"); return; } List <TCUIThreat> actualTCUIThreats = new List <TCUIThreat>(); foreach (IntruderAbilityControl iac in controlsIAC) { iac.updateIac(); int intrPot = (int)iac.intrud; if ((iac.threatValue >= 10 && iac.Checked) && iac.abilityOfRealization != "" && iac.damage != "") { if (iac.damage == "Высокая" && intrPot <= ts.Potencial) { actualTCUIThreats.Add(listOfTCUIThreats.Find(t => t.Name == iac.threatName)); } if (iac.damage == "Средняя" && (iac.abilityOfRealization == "Средняя" || iac.abilityOfRealization == "Высокая") && intrPot <= ts.Potencial) { actualTCUIThreats.Add(listOfTCUIThreats.Find(t => t.Name == iac.threatName)); } if (iac.damage == "Низкая" && iac.abilityOfRealization == "Высокая" && intrPot <= ts.Potencial) { actualTCUIThreats.Add(listOfTCUIThreats.Find(t => t.Name == iac.threatName)); } } } foreach (TCUIThreat tct in actualTCUIThreats) { mf.dgvActualTCUIThreats.Rows.Add(tct.Identificator + " " + tct.Name, tct.Description); } bool fullList = true; foreach (IntruderAbilityControl iac in controlsIAC) { if (!iac.Checked) { fullList = false; } } if (fullList) { if (mf.dgvActualTCUIThreats.Rows.Count == 0) { mf.lbTCUIInfo.Text = "Угрозы утечки информации по техническим каналам не актуальны для информационной системы."; } else { mf.lbTCUIInfo.Text = "Угрозы утечки информации по техническим каналам в списке являются актуальными для информационной системы."; } } else { mf.lbTCUIInfo.Text = "Для определения списка актуальных угроз утечки по техническим каналам, выберите все поля на предыдущих вкладках."; } setDGVHeight(); }