static void Main(string[] args) { #region Files //const string fileAuditorias = "auditoriasFile.bin"; //const string fileVulnerabilidades = "vulnerabilidadesFile.bin"; //const string fileColaboradores = "colaboradoresFile.bin"; //const string fileEquipamentos = "equipamentosFile.bin"; #endregion //RN.Load(fileAuditorias, fileVulnerabilidades, fileColaboradores, fileEquipamentos); #region Main Colaborador jose = new Colaborador("Jose"); Colaborador pedro = new Colaborador("Pedro"); Colaborador luis = new Colaborador("Luis"); Equipamento asusZenbook = new Equipamento("pc", "asus", "zenbook", "25/04/2000"); Equipamento hpElitebook = new Equipamento("pc", "hp", "elitebook", "01/04/2000"); Vulnerabilidade va = new Vulnerabilidade("falha na rede", Vulnerabilidade.Level.ELEVADO); Vulnerabilidade vb = new Vulnerabilidade("cabo rasgado", Vulnerabilidade.Level.BAIXO); Vulnerabilidade vc = new Vulnerabilidade("falha eletrica", Vulnerabilidade.Level.MODERADO); Auditoria b = new Auditoria(20, pedro, "21/06/2000"); Auditoria c = new Auditoria(45, jose, "22/06/2000"); Auditoria a = new Auditoria(15, jose, "20/06/2000"); RN.InsereAuditoria(a); RN.InsereAuditoria(b); RN.InsereAuditoria(c); RN.InsereColaborador(jose); RN.InsereColaborador(pedro); RN.InsereColaborador(luis); RN.InsereVulnerabilidade(va); RN.InsereVulnerabilidade(vb); RN.InsereVulnerabilidade(vc); RN.InsereEquipamento(asusZenbook); RN.InsereEquipamento(hpElitebook); RN.InsereVulnerabilidadeAuditoria(b, vb); RN.InsereVulnerabilidadeAuditoria(c, va); RN.InsereVulnerabilidadeAuditoria(c, vc); RN.InsereVulnerabilidadeAuditoria(a, va); RN.InsereVulnerabilidadeAuditoria(a, vb); RN.InsereVulnerabilidadeAuditoria(a, vc); RN.InsereColaboradorAuditoria(a, jose); RN.InsereColaboradorAuditoria(b, pedro); RN.InsereColaboradorAuditoria(c, jose); RN.InsereVulnerabilidadeEquipamento(va, asusZenbook); RN.InsereVulnerabilidadeEquipamento(vc, asusZenbook); RN.InsereVulnerabilidadeEquipamento(vb, hpElitebook); RN.InsereVulnerabilidadeEquipamento(vc, hpElitebook); #endregion //RN.Save(fileAuditorias,fileVulnerabilidades,fileColaboradores,fileEquipamentos); RN.ApresentarDados(); Console.ReadKey(); ///Teste de alguns metodos de manipulação do programa /// > Resolver a vulnerabilidade (va) /// > Altera o estado do colaborador Luis para INATIVO RN.ResolveVulnerabilidade(va); RN.ResolveColaborador(luis); RN.ApresentarDados(); Console.ReadKey(); }
/// <summary> /// Regista uma vulnerabilidade /// </summary> /// <param name="v">Vulnerabilidade Completa </param> /// <returns> false se já existir essa vulnerabilidade /// 1 se for inserida a vulnerabilidade</returns> public static int RegistaVulnerabilidade(Vulnerabilidade v) { try { return(Vulnerabilidades.RegistaVulnerabilidade(v)); } catch (IndexOutOfRangeException x) { throw new FormatException("ERRO: " + x.Message); } catch (Exception x) { throw new Exception("ERRO: " + x.Message); } }
/// <summary> /// Adiciona uma vulnerabilidade a lista /// </summary> /// <param name="vuln">vulnerabilidade a ser adicionada</param> /// <returns> Devolve true/false consoante adicione ou não uma vulnerabilidade</returns> public static bool InsereVulnerabilidade(Vulnerabilidade vuln) { try { Vulnerabilidades.InsereVulnerabilidades(vuln); return(true); } catch (InsercaoException e) { throw new InsercaoException("ERRO! " + e.Message); } catch (Exception e) { throw new Exception("ERRO! " + e.Message); } }
/// <summary> /// Adiciona uma vulnerabilidade a um equipamento e vice-versa /// </summary> /// <param name="equip">equipamento a ser adicionada</param> /// <param name="vuln">vulnerabilidade a ser adicionada</param> /// <returns> Devolve true/false consoante adicione ou não </returns> public static bool InsereVulnerabilidadeEquipamento(Vulnerabilidade vuln, Equipamento equip) { try { vuln.InserirEquipVulnerabilidade(equip); equip.InserirVulnEquipamento(vuln); return(true); } catch (InsercaoException e) { throw new InsercaoException("ERRO! " + e.Message); } catch (Exception e) { throw new Exception("ERRO! " + e.Message); } }
/// <summary> /// Adiciona uma vulnerabilidade a uma auditoria e vice-versa /// </summary> /// <param name="a">auditoria a ser adicionada</param> /// <param name="vuln">vulnerabilidade a ser adicionada</param> /// <returns> Devolve true/false consoante adicione ou não </returns> public static bool InsereVulnerabilidadeAuditoria(Auditoria a, Vulnerabilidade vuln) { try { a.InserirVulnAuditoria(vuln); vuln.InserirAudVulnerabilidade(a); return(true); } catch (InsercaoException e) { throw new InsercaoException("ERRO! " + e.Message); } catch (Exception e) { throw new Exception("ERRO! " + e.Message); } }
/// <summary> /// Resolve vulnerabilidade /// </summary> /// <param name="vuln">vulnerabilidade a ser resolvida</param> /// <returns> Devolve true/false consoante resolveu ou não </returns> public static bool ResolveVulnerabilidade(Vulnerabilidade vuln) { try { vuln.ResolveVulnerabilidade(); Auditorias.RemoveVulnerabilidadeAuditoria(vuln.Codigo); Equipamentos.RemoveVulnerabilidadeEquipamento(vuln.Codigo); return(true); } catch (VulnerabilidadeInexistenteException e) { throw new VulnerabilidadeInexistenteException("ERRO! " + e.Message); } catch (Exception e) { throw new Exception("ERRO! " + e.Message); } }
/// <summary> /// Adiciona uma vulnerabilidade a lista /// </summary> /// <param name="vuln">vulnerabilidade a ser adicionada</param> /// <returns> Devolve true/false consoante adicione ou não uma vulnerabilidade</returns> public static bool InsereVulnerabilidades(Vulnerabilidade vuln) { try { lstVulnerabilidades.Add(vuln); return(true); } catch (VulnerabilidadeInexistenteException e) { throw new VulnerabilidadeInexistenteException("ERRO! " + e.Message); } catch (InsercaoException e) { throw new InsercaoException("ERRO! " + e.Message); } catch (Exception e) { throw new Exception("ERRO! " + e.Message); } }
/// <summary> /// Regista uma vulnerabilidade /// </summary> /// <param name="v">Vulnerabilidade Completa </param> /// <returns> false se já existir essa vulnerabilidade /// 1 se for inserida a vulnerabilidade</returns> public static int RegistaVulnerabilidade(Vulnerabilidade v) { try { v.Codigo = (vul.Count) + 1; if (ExisteVulnerabilidade(v.Codigo) == true) { return(0); } vul.Add(v); return(v.Codigo); } catch (IndexOutOfRangeException x) { throw new FormatException(x.Message); } catch (Exception x) { throw new Exception(x.Message); } }
/// <summary> /// Apresenta todas as vulnerabilidades presentes nas auditorias feitas /// </summary> public static void ApresentarVulneabilidadesAuditoria() { int i = 0; int j = 0; for (; i < TotalAuditorias(); i++) { j = 0; Console.WriteLine(""); Console.WriteLine(" Auditoria : {0}\n {1,-12}|{2,-30}|{3,-10}", lstAuditorias[i].Codigo.ToString(), "Codigo Vuln.", "Descrição", "Nível"); if (lstAuditorias[i].CodVulns.Count == 0) { Console.WriteLine("\tNão contem vulnerabilidades"); } else { for (; j < lstAuditorias[i].CodVulns.Count; j++) { Vulnerabilidade aux = Vulnerabilidades.EncontraVulnerabilidade(lstAuditorias[i].CodVulns[j]); Console.WriteLine(" {0,-12}|{1,-30}|{2,-10}", aux.Codigo.ToString(), aux.Descricao, aux.Nivel.ToString()); } } } }
static void Main(string[] args) { int id = 5; // Id para procura de qualquer objeto /** * Criação de instancias das classes Funcionario e Funcionarios */ #region Criação Dados Funcionario f1 = new Funcionario("Abf2886392", "José António", 123423, "Eng.Informático", new DateTime(2001, 08, 18)); Funcionario f2 = new Funcionario("QUSD7282", "Pedro Henriques", 1234231, "Técnico Informático", new DateTime(2005, 07, 28)); Equipamento e1 = new Equipamento("Laptop", "HP", "Omen", new DateTime(2019, 02, 12)); Equipamento e2 = new Equipamento("Laptop", "Lenovo", "IdeaPad", new DateTime(2019, 9, 20)); Vulnerabilidade v1 = new Vulnerabilidade(1, "Virus", "Elevado"); Vulnerabilidade v2 = new Vulnerabilidade(2, "Trojan", "Elevado"); Funcionarios listaFuncionarios = new Funcionarios(); Equipamentos listaEquipamentos = new Equipamentos(); Vulnerabilidades listaVulnerabilidades = new Vulnerabilidades(); #endregion #region Inserção de elementos nas respectivas listas listaFuncionarios.InserirFuncionario(f1); // Insere 1 funcionario na lista de funcionarios listaEquipamentos.InserirEquipamento(e1); // Insere 1 equipamento na lista de equipamentos listaVulnerabilidades.InsereVulnerabilidade(v1); // Insere 1 vulnerabilidade na lista de vulnerabilidades #endregion /** * Tenta remover Funcionario se o Id estiver certo * Tenta inserir Funcionario se o Nº Contribuinte for diferente */ #region Insere Funcionario //Console.WriteLine("\n\nAntes:\n\n" + listaFuncionarios.ListarFuncionarios()); Console.ReadKey(); //listaFuncionarios.InserirFuncionario(f2); //Console.WriteLine("Depois:\n" + listaFuncionarios.ListarFuncionarios()); #endregion #region Remove Funcionario //Console.WriteLine("Digite um ID"); //try //{ // if (listaFuncionarios.VerificaId(Console.ReadLine(), out id)) { listaFuncionarios.Remove(id); } // else { Console.WriteLine("Este ID não existe!"); } //}catch(ValoresExceptions e) //{ // throw new ValoresExceptions(); //}catch(Exception e) //{ // throw new Exception(); //} #endregion #region Edita Dados Funcionario //Console.WriteLine("Digite um ID"); //try //{ // if (listaFuncionarios.VerificaId(Console.ReadLine(), out id)) { listaFuncionarios.Editar(id, "Pedrinho"); } // else { Console.WriteLine("Funcionario não encontrado!"); } //}catch(ValoresExceptions ee) //{ // Console.WriteLine(ee); //}catch(Exception e) //{ // Console.WriteLine(e); //} //Console.WriteLine(listaFuncionarios.ListarFuncionarios()); #endregion #region Mostra Funcionarios, Qtd Funcionarios Total //Console.WriteLine(listaFuncionarios.ListarFuncionarios()); //Console.WriteLine("Na empresa há: {0} funcionario(s)",listaFuncionarios.QtdFuncionario); #endregion /** * Tenta remover um equipamento se o ID estiver certo * Tenta inserir um equipamento se o ID for diferente */ #region Insere Equipamento Console.WriteLine("\n\nAntes:\n\n" + listaFuncionarios.ListarFuncionarios()); Console.ReadKey(); if (listaEquipamentos.Procura(e2.Codigo) != -1) { listaEquipamentos.InserirEquipamento(e2); } else { Console.WriteLine("Este equipamento já existe no sistema!"); } #endregion Console.ReadKey(); }
static void Main(string[] args) { bool exit = true; int id; // Id para procura de qualquer objeto /** * Criação de instancias das classes Funcionario e Funcionarios */ Funcionario f1 = new Funcionario("Abf2886392", "José António", 123423, "Eng.Informático", new DateTime(2001, 08, 18)); Funcionario f2 = new Funcionario("QUSD7282", "Pedro Henriques", 1878924, "Técnico Informático", new DateTime(2005, 07, 28)); Equipamento e1 = new Equipamento("Laptop", "HP", "Omen", new DateTime(2019, 02, 12)); Equipamento e2 = new Equipamento("Laptop", "Lenovo", "IdeaPad", new DateTime(2019, 9, 20)); Vulnerabilidade v1 = new Vulnerabilidade(1, "Virus", "Elevado"); Vulnerabilidade v2 = new Vulnerabilidade(2, "Trojan", "Elevado"); Funcionarios listaFuncionarios = new Funcionarios(); Equipamentos listaEquipamnetos = new Equipamentos(); Vulnerabilidades listaVulnerabilidades = new Vulnerabilidades(); //Inserção de elementos nas respectivas listas listaFuncionarios.InserirFuncionario(f1); listaEquipamnetos.InserirEquipamento(e1); listaVulnerabilidades.InsereVulnerabilidade(v1); while (exit) { switch (Menus.MenuPrincipal())/*Mostra o menu principal*/ { #region Gerir Colaboradores case '1': // Gerir Colaboradores while (exit) { switch (Menus.MenuFuncionario()) { case '1': //Inserir Funcionario Console.Clear(); listaFuncionarios.InserirFuncionario(f2); break; case '2': // Remover Funcionario Console.Clear(); Console.WriteLine("Id do funcionario:"); id = Convert.ToInt32(Console.ReadLine()); if (listaFuncionarios.Procura(id) >= 0) { listaFuncionarios.Remove(id); } else { Console.Clear(); Console.WriteLine("Este Funcionario não existe!"); Console.ReadKey(); } break; case '3': // Editar Funcionario Console.Clear(); Console.WriteLine("Id do funcionario:"); id = Convert.ToInt32(Console.ReadLine()); if (listaFuncionarios.Procura(id) >= 0) { listaFuncionarios.Editar(id, 4); } else { Console.Clear(); Console.WriteLine("Este Funcionario não existe!"); Console.ReadKey(); } break; case '4': // Listar Console.Clear(); Console.WriteLine(listaFuncionarios.ListarFuncionarios()); Console.ReadKey(); break; case 's': case 'S': exit = false; break; } } exit = true; break; #endregion #region Gerir Equipamentos case '2': // Gerir Equipamentos Menus.MenuEquipamentos(); while (exit) { switch (Menus.MenuFuncionario()) { case '1': //Inserir Funcionario Console.Clear(); listaEquipamnetos.InserirEquipamento(e2); break; case '2': // Remover Funcionario Console.Clear(); Console.WriteLine("Id do funcionario:"); id = Convert.ToInt32(Console.ReadLine()); if (listaEquipamnetos.Procura(id) >= 0) { listaEquipamnetos.Remove(id); } else { Console.Clear(); Console.WriteLine("Este Funcionario não existe!"); Console.ReadKey(); } break; case '3': // Editar Funcionario Console.Clear(); Console.WriteLine("Id do funcionario:"); id = Convert.ToInt32(Console.ReadLine()); if (listaEquipamnetos.Procura(id) >= 0) { listaEquipamnetos.Editar(id, 4); } else { Console.Clear(); Console.WriteLine("Este Funcionario não existe!"); Console.ReadKey(); } break; case '4': // Listar Console.Clear(); Console.WriteLine(listaEquipamnetos.ListarEquipamentos()); Console.ReadKey(); break; case 's': case 'S': exit = false; break; } } exit = true; break; #endregion #region Gerir Vulnerabilidades case '3': //Gerir Vulnerabilidades Menus.MenuVulnerabilidades(); while (exit) { switch (Menus.MenuFuncionario()) { case '1': //Inserir Funcionario Console.Clear(); listaVulnerabilidades.InsereVulnerabilidade(v2); break; case '2': // Remover Funcionario Console.Clear(); Console.WriteLine("Id do funcionario:"); id = Convert.ToInt32(Console.ReadLine()); if (listaVulnerabilidades.Procura(id) >= 0) { listaVulnerabilidades.Remove(id); } else { Console.Clear(); Console.WriteLine("Este Funcionario não existe!"); Console.ReadKey(); } break; case '3': // Editar Funcionario Console.Clear(); Console.WriteLine("Id do funcionario:"); id = Convert.ToInt32(Console.ReadLine()); if (listaVulnerabilidades.Procura(id) >= 0) { listaVulnerabilidades.Editar(id, 4); } else { Console.Clear(); Console.WriteLine("Este Funcionario não existe!"); Console.ReadKey(); } break; case '4': // Listar Console.Clear(); Console.WriteLine(listaVulnerabilidades.MostrarDados()); Console.ReadKey(); break; case 's': case 'S': exit = false; break; } } exit = true; break; #endregion #region Gerir Auditorias case '4': //Gerir Auditorias Menus.MenuAuditoria(); break; #endregion #region Sair do programa case 's': case 'S': exit = false; break; default: break; #endregion } } }
static void Main(string[] args) { int id = 5; // Id para procura de qualquer objeto **TESTES** /** * Criação de instancias das classes Funcionario e Funcionarios */ #region Criação Dados Funcionario f1 = new Funcionario("Abf2886392", "José António", 123423, "Eng.Informático", new DateTime(2001, 08, 18)); f1.Morada = "Rua dos Periquitos Nº333"; f1.Contacto = 92547893; Funcionario f2 = new Funcionario("QUSD7282", "Pedro Henriques", 1234231, "Técnico Informático", new DateTime(2005, 07, 28)); Equipamento e1 = new Equipamento("Laptop", "HP", "Omen", new DateTime(2019, 02, 12)); Equipamento e2 = new Equipamento("Laptop", "Lenovo", "IdeaPad", new DateTime(2019, 9, 20)); Vulnerabilidade v1 = new Vulnerabilidade("Virus", "Elevado"); Vulnerabilidade v2 = new Vulnerabilidade("Trojan", "Elevado"); Funcionarios listaFuncionarios = new Funcionarios(); Equipamentos listaEquipamentos = new Equipamentos(); Vulnerabilidades listaVulnerabilidades = new Vulnerabilidades(); #endregion #region Inserção de elementos nas respectivas listas listaFuncionarios.InserirFuncionario(f1); // Insere 1 funcionario na lista de funcionarios listaEquipamentos.InserirEquipamento(e1); // Insere 1 equipamento na lista de equipamentos listaVulnerabilidades.InserirVulnerabilidade(v1); // Insere 1 vulnerabilidade na lista de vulnerabilidades #endregion #region FUNCIONARIOS /** * Tenta remover Funcionario se o Id estiver certo * Tenta inserir Funcionario se o Nº Contribuinte for diferente * Listagem de dados */ #region Insere Funcionario **TESTADO** //Console.WriteLine("\n\nAntes:\n\n" + listaFuncionarios.ListarFuncionarios()); Console.ReadKey(); //listaFuncionarios.InserirFuncionario(f2); //Console.WriteLine("Depois:\n" + listaFuncionarios.ListarFuncionarios()); #endregion #region Remove Funcionario **TESTADO** //Console.WriteLine("Digite um ID"); //try //{ // if (listaFuncionarios.VerificaId(Console.ReadLine(), out id)) // { // if (listaFuncionarios.Procura(id) != -1) { listaFuncionarios.Remove(id); } // else { Console.WriteLine("Este ID não existe!\n\n"); } // } // else { Console.WriteLine("Valores incorretos!"); } // Console.WriteLine(listaFuncionarios.ListarFuncionarios()); //} //catch (ValoresExceptions e) //{ // throw new ValoresExceptions(); //} //catch (Exception e) //{ // throw new Exception(); //} #endregion #region Edita Dados Funcionario **TESTADO** //Console.WriteLine("Digite um ID"); //try //{ // if (listaFuncionarios.VerificaId(Console.ReadLine(), out id)) { listaFuncionarios.Editar(id, "Pedrinho"); } // else { Console.WriteLine("Funcionario não encontrado!"); } //}catch(ValoresExceptions ee) //{ // Console.WriteLine(ee); //}catch(Exception e) //{ // Console.WriteLine(e); //} //Console.WriteLine(listaFuncionarios.ListarFuncionarios()); #endregion #region Mostra Funcionarios, Qtd Funcionarios Total **TESTADO** //Console.WriteLine("Mostra Essencial Empresa:\n{0}\n\n", listaFuncionarios.ListarFuncionarios()); //Console.WriteLine("Mostra Dados Pessoais:\n\n{0}\n\n", listaFuncionarios.ListarFuncionariosDadosPessoais()); //Console.WriteLine("Na empresa há: {0} funcionario(s)", listaFuncionarios.QtdFuncionario); //Console.WriteLine("Funcionario Completo:\n {0}", listaFuncionarios.ListarFuncionariosCompleto()); #endregion #endregion #region EQUIPAMENTOS /** * Tenta remover um equipamento se o ID estiver certo * Tenta inserir um equipamento se o ID for diferente * Listagem de dados */ #region Insere Equipamento **TESTADO** //Console.WriteLine("Antes:\n{0}", listaEquipamentos.ListarEquipamentos()); Console.ReadKey(); //if (listaEquipamentos.InserirEquipamento(e2)) { Console.WriteLine("Equipamento inserido!"); } //else { Console.WriteLine("Equipamento já existe no sistema!"); } //Console.Clear(); //Console.WriteLine("\n\nDepois:\n{0}", listaEquipamentos.ListarEquipamentos()); #endregion #region Remove Equipamento **TESTADO** //Console.WriteLine("Digite um ID"); //try //{ // if (listaEquipamentos.VerificaId(Console.ReadLine(), out id)) { listaEquipamentos.Remove(id); } // else { Console.WriteLine("Este ID não existe!"); } //} //catch (ValoresExceptions e) //{ // throw new ValoresExceptions(); //} //catch (Exception e) //{ // throw new Exception(); //} //Console.WriteLine("Depois:\n\n"+listaEquipamentos.ListarEquipamentos()); #endregion #region Edita Dados Equipamento **TESTADO** #region Edita Marca //Console.WriteLine("Digite um ID:"); //try //{ // if (listaEquipamentos.VerificaId(Console.ReadLine(), out id)) { listaEquipamentos.EditarMarca(id, "Asus"); } // else { Console.WriteLine("Equipamento não encontrado!"); } // Console.Clear(); // Console.WriteLine(listaEquipamentos.ShowEquipment(id)); Console.ReadKey(); //} //catch (ValoresExceptions ee) //{ // Console.WriteLine(ee); //} //catch (Exception e) //{ // Console.WriteLine(e); //} //Console.WriteLine(listaEquipamentos.ListarEquipamentos()); #endregion #region Edita Modelo //Console.WriteLine("Digite um ID:"); //try //{ // if (listaEquipamentos.VerificaId(Console.ReadLine(), out id)) { listaEquipamentos.EditarModelo(id, "XPTO2020"); } // else { Console.WriteLine("Equipamento não encontrado!"); } // Console.Clear(); // Console.WriteLine(listaEquipamentos.ShowEquipment(id)); Console.ReadKey(); //} //catch (ValoresExceptions ee) //{ // Console.WriteLine(ee); //} //catch (Exception e) //{ // Console.WriteLine(e); //} //Console.WriteLine(listaEquipamentos.ListarEquipamentos()); #endregion #region Edita Data Aquisição //Console.WriteLine("Digite um ID:"); //try //{ // if (listaEquipamentos.VerificaId(Console.ReadLine(), out id)) { listaEquipamentos.EditarDataAquisicao(id, new DateTime(2001,8,8)); } // else { Console.WriteLine("Equipamento não encontrado!"); } // Console.Clear(); // Console.WriteLine(listaEquipamentos.ShowEquipment(id)); //} //catch (ValoresExceptions ee) //{ // Console.WriteLine(ee); //} //catch (Exception e) //{ // Console.WriteLine(e); //} ////Console.WriteLine(listaEquipamentos.ListarEquipamentos()); #endregion #endregion #region Mostra Equipamentos, Qtd Total **TESTADO** //Console.WriteLine("Usando o Metodo da Classe Equipamento:\n{0}\n",e1.MostraDados()); //Console.WriteLine("Usando o Metodo de listagem geral da Classe Equipamentos:\n{0}\n",listaEquipamentos.ListarEquipamentos()); //Console.WriteLine("Insira o ID do Equipamento:"); //if(listaEquipamentos.VerificaId(Console.ReadLine(),out id)) { //Console.WriteLine("Usando o Metodo de busca da Classe Equipamento:\n{0}\n",listaEquipamentos.ShowEquipment(id)); //} //else { Console.WriteLine("Equipamento não existe!"); } //Console.WriteLine("Total de equipamentos: {0}", listaEquipamentos.QtdEquipamentos); #endregion #endregion #region VULNERABILIDADES /** * Tenta remover uma vulnerabilidade se o ID estiver certo * Tenta inserir uma vulnerabilidade se o ID for diferente * Listagem de dados */ #region Insere uma vulnerabilidade **TESTADO** //Console.WriteLine("\n\nAntes:\n\n" + listaVulnerabilidades.ListarVulnerabilidades()); Console.ReadKey(); //listaVulnerabilidades.InserirVulnerabilidade(v2); //Console.WriteLine("Depois:\n" + listaVulnerabilidades.ListarVulnerabilidades()); #endregion #region Remove uma vulnerabilidade **TESTADO** //Console.WriteLine("Digite um ID"); //try //{ // if (listaVulnerabilidades.VerificaId(Console.ReadLine(), out id)) // { // if (listaVulnerabilidades.Procura(id) != -1) { listaVulnerabilidades.Remove(id); } // else { Console.WriteLine("Este ID não existe!\n\n"); } // } // else { Console.WriteLine("Valores incorretos!"); } // Console.WriteLine(listaVulnerabilidades.ListarVulnerabilidades()); //} //catch (ValoresExceptions ee) //{ // throw new ValoresExceptions(ee.Message); //} //catch (Exception e) //{ // throw new Exception(e.Message); //} #endregion #region Edita vulnerabilidade **TESTADO** #region Edita Descrição da Vulnerabilidade //Console.WriteLine("Digite um ID"); //try //{ // if (listaVulnerabilidades.VerificaId(Console.ReadLine(), out id)) { listaVulnerabilidades.EditarDescricao(id, "Maquina Lenta"); } // else { Console.WriteLine("Vulnerabilidade não encontrada!"); } //} //catch (ValoresExceptions ee) //{ // Console.WriteLine(ee); //} //catch (Exception e) //{ // Console.WriteLine(e); //} //Console.WriteLine(listaVulnerabilidades.ListarVulnerabilidades()); #endregion #region Edita Imapcto da Vulnerabilidade //Console.WriteLine("Digite um ID"); //try //{ //if (listaVulnerabilidades.VerificaId(Console.ReadLine(), out id)) { listaVulnerabilidades.EditarImpacto(id, "Leve"); } //else { Console.WriteLine("Vulnerabilidade não encontrada!"); } //} //catch (ValoresExceptions ee) //{ // Console.WriteLine(ee); //} //catch (Exception e) //{ // Console.WriteLine(e); //} //Console.WriteLine(listaVulnerabilidades.ListarVulnerabilidades()); #endregion #endregion #region Mostra vulnerabilidades, Qtd Total **TESTADO** //Console.WriteLine("Usando o Metodo da Classe Vulnerabilidade:\n\n\n{0}\n", v1.MostraVulnerabilidade()); //Console.WriteLine("Usando o Metodo de listagem geral da Classe Vulnerabilidades:\n{0}\n", listaVulnerabilidades.ListarVulnerabilidades()); //Console.WriteLine("Insira o ID da Vulnerabilidade:"); //if (listaVulnerabilidades.VerificaId(Console.ReadLine(), out id)) //{ // if(listaVulnerabilidades.Procura(id) != -1) // { // Console.WriteLine("Usando o Metodo de busca da Classe Vulnerabilidade:\n\n\n{0}\n", listaVulnerabilidades.MostrarDados(id)); // } // else // { // Console.WriteLine("Equipamento não existe!"); // } //} //else { Console.WriteLine("Equipamento não existe!"); } //Console.WriteLine("Total de vulnerabilidades: {0}", listaVulnerabilidades.QtdVulnerabilidades); #endregion #endregion Console.WriteLine("\n\nFIM!"); Console.ReadKey(); }
static void Main(string[] args) { #region VARIAVEIS int quant, opcao = 0; AuditoriaAux amaior; AuditoriaAux amenor; Auditoria a = new Auditoria(); Colaborador c = new Colaborador(); Equipamento e = new Equipamento(); Vulnerabilidade v = new Vulnerabilidade(); EquipamentoAux e2; List <int> vulnsAux; List <ColaboradorAux> colAux; List <AuditoriaAux> audAux; List <EquipamentoAux> equAux; List <VulnerabilidadeAux> vulAux = new List <VulnerabilidadeAux>(); #endregion #region CARREGAMENTOS try { EquRegras.CarregarEquipamentos(@"..\..\Ficheiros\Equipamentos"); } catch (IOException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { VulRegras.CarregarVulnerabilidades(@"..\..\Ficheiros\Vulnerabilidades"); } catch (IOException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { ColRegras.CarregarColaboradores(@"..\..\Ficheiros\Colaboradores"); } catch (IOException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { AudRegras.CarregarAuditorias(@"..\..\Ficheiros\Auditorias"); } catch (IOException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } #endregion #region ZONA DEMONSTRATIVA (TESTE) #region DADOS TESTE /*Criação de Objetos exemplares*/ Colaborador col1 = new Colaborador(0, Atividade.ATIVO, 0, "Carlo", Genero.M, 20, 164015584); Colaborador col2 = new Colaborador(0, Atividade.ATIVO, 0, "Filipe", Genero.M, 23, 251312021); Equipamento equ1 = new Equipamento(0, "Portatil", "HP", "cs006np", DateTime.Parse("21/02/2020")); Equipamento equ2 = new Equipamento(0, "Monitor", "LG", "ex123", DateTime.Today); Vulnerabilidade vul1 = new Vulnerabilidade(0, "Falha no sistema", NivelImpacto.ELEVADO, Estado.NAORESOLVIDA); Vulnerabilidade vul2 = new Vulnerabilidade(0, "Erro", NivelImpacto.MODERADO, Estado.NAORESOLVIDA); Vulnerabilidade vul3 = new Vulnerabilidade(0, "Problema", NivelImpacto.BAIXO, Estado.RESOLVIDA); Vulnerabilidade vul4 = new Vulnerabilidade(0, "Erro de iniciação", NivelImpacto.ELEVADO, Estado.RESOLVIDA); Vulnerabilidade vul5 = new Vulnerabilidade(0, "Falha", NivelImpacto.BAIXO, Estado.NAORESOLVIDA); Vulnerabilidade vul6 = new Vulnerabilidade(0, "Perde Informação", NivelImpacto.MODERADO, Estado.RESOLVIDA); /*Registo de cada um dos objetos*/ try { ColRegras.RegistaColaborador(col1); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { ColRegras.RegistaColaborador(col2); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { EquRegras.RegistaEquipamento(equ1); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { EquRegras.RegistaEquipamento(equ2); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { VulRegras.RegistaVulnerabilidade(vul1); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { VulRegras.RegistaVulnerabilidade(vul2); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { VulRegras.RegistaVulnerabilidade(vul3); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { VulRegras.RegistaVulnerabilidade(vul4); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { VulRegras.RegistaVulnerabilidade(vul5); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { VulRegras.RegistaVulnerabilidade(vul6); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } /*Criação de Objetos exemplares*/ Auditoria aud1 = new Auditoria(0, 10, DateTime.Today, col1.Codigo, equ1.Codigo); Auditoria aud2 = new Auditoria(0, 54, DateTime.Today, col1.Codigo, equ2.Codigo); Auditoria aud3 = new Auditoria(0, 41, DateTime.Today, col2.Codigo, equ2.Codigo); /*Complementação das auditorias e equipamentos ao adicionar vulnerabilidades*/ try { AudRegras.RegistaAuditoria(aud1); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { AudRegras.RegistaAuditoria(aud2); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { AudRegras.RegistaAuditoria(aud3); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { ColRegras.AdicionaAuditoriaColaborador(aud1.CodColab); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { ColRegras.AdicionaAuditoriaColaborador(aud2.CodColab); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { ColRegras.AdicionaAuditoriaColaborador(aud2.CodColab); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { AudRegras.AdicionaVulnerabilidadeAuditoria(aud1.Codigo, vul1.Codigo); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { AudRegras.AdicionaVulnerabilidadeAuditoria(aud1.Codigo, vul2.Codigo); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { AudRegras.AdicionaVulnerabilidadeAuditoria(aud2.Codigo, vul3.Codigo); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { AudRegras.AdicionaVulnerabilidadeAuditoria(aud3.Codigo, vul4.Codigo); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { AudRegras.AdicionaVulnerabilidadeAuditoria(aud3.Codigo, vul5.Codigo); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { AudRegras.AdicionaVulnerabilidadeAuditoria(aud3.Codigo, vul6.Codigo); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { EquRegras.AdicionaVulnerabilidadeEquipamento(equ1.Codigo, vul1.Codigo); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { EquRegras.AdicionaVulnerabilidadeEquipamento(equ1.Codigo, vul2.Codigo); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { EquRegras.AdicionaVulnerabilidadeEquipamento(equ2.Codigo, vul3.Codigo); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { EquRegras.AdicionaVulnerabilidadeEquipamento(equ2.Codigo, vul4.Codigo); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { EquRegras.AdicionaVulnerabilidadeEquipamento(equ2.Codigo, vul5.Codigo); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { EquRegras.AdicionaVulnerabilidadeEquipamento(equ2.Codigo, vul6.Codigo); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } #endregion /*Apresentação do dashboard*/ if (AudRegras.QuantidadeAuditorias() != 0) { amaior = AudRegras.ObterAuditoriaMaisVuln(); amenor = AudRegras.ObterAuditoriaMenosVuln(); Console.WriteLine(" -> Quantidade de Auditorias: {0}\n", AudRegras.QuantidadeAuditorias()); Console.WriteLine(" -> Auditoria com mais Vulnerabilidades"); Console.WriteLine(" Código: {0, -5}| Data: {1, -10} | Quantidade de Vulnerabilidades: {2}\n", amaior.Codigo.ToString(), amaior.DataRegisto.ToShortDateString(), AudRegras.ObterQuantidadeVulnerabilidadesAuditoria(amaior.Codigo).ToString()); Console.WriteLine(" -> Auditoria com menos Vulnerabilidades"); Console.WriteLine(" Código: {0, -5}| Data: {1, -10} | Quantidade de Vulnerabilidades: {2}\n", amenor.Codigo.ToString(), amenor.DataRegisto.ToShortDateString(), AudRegras.ObterQuantidadeVulnerabilidadesAuditoria(amenor.Codigo).ToString()); Console.WriteLine(" -> Média de Vulnerabilidades por Auditoria: {0}\n\n", AudRegras.ObtemMediaVulns().ToString()); } Console.ReadKey(); Console.Clear(); /*Mostrar Informações*/ Console.WriteLine(":{0, -63}:\n:{1, -63}:", "-> Lista de Auditorias", " "); Console.WriteLine(": {0, -7}: {1, -12}: {2, -9}: {3, -13}: {4, -13}:", "Código", "Data", "Duracao", "Colaborador", "Equipamento"); Console.WriteLine(": {0, -7}: {0, -12}: {0, -9}: {0, -13}: {0, -13}:", ""); audAux = AudRegras.MostraAuditorias(); foreach (AuditoriaAux aAux in audAux) { Console.WriteLine(": {0, -7}: {1, -12}: {2, -5}min : {3, -13}: {4, -13}:", aAux.Codigo.ToString(), aAux.DataRegisto.ToShortDateString(), aAux.Duracao.ToString(), aAux.CodColab.ToString(), aAux.CodEqui.ToString()); } Console.WriteLine(); audAux.Clear(); Console.WriteLine(":{0, -66}:\n:{1, -66}:", "-> Lista de Colaboradores", " "); Console.WriteLine(": {0, -8}: {1, -23}: {2, -7}: {3, -7}: {4, -12}:", "Código", "Nome", "Idade", "Género", "Atividade"); Console.WriteLine(": {0, -8}: {0, -23}: {0, -7}: {0, -7}: {0, -12}:", ""); colAux = ColRegras.MostraColaboradores(); foreach (ColaboradorAux cAux in colAux) { Console.WriteLine(": {0, -8}: {1, -23}: {2, -7}: {3, -7}: {4, -12}:", cAux.Codigo.ToString(), cAux.Nome, cAux.Idade.ToString(), cAux.Genero.ToString(), cAux.Atividade.ToString()); } Console.WriteLine(); colAux.Clear(); Console.WriteLine(":{0, -71}:\n:{1, -71}:", "-> Lista de Equipamentos", " "); Console.WriteLine(": {0, -7}: {1, -12}: {2,-14}: {3, -14}: {4, -15}:", "Código", "Data", "Tipo", "Marca", "Modelo"); Console.WriteLine(": {0, -7}: {0, -12}: {0,-14}: {0, -14}: {0, -15}:", ""); equAux = EquRegras.MostraEquipamentos(); foreach (EquipamentoAux eAux in equAux) { Console.WriteLine(": {0, -7}: {1, -12}: {2,-14}: {3, -14}: {4, -15}:", eAux.Codigo.ToString(), eAux.DataAquisicao.ToShortDateString(), eAux.Tipo.ToString(), eAux.Marca.ToString(), eAux.Modelo.ToString()); } equAux.Clear(); Console.ReadKey(); Console.Clear(); /*Editar Objetos*/ try { AudRegras.EditaAuditoria(1, DateTime.Parse("22/02/2020"), 26); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { VulRegras.EditaVulnerabilidade(vul5.Codigo, "Falha no Sistema", NivelImpacto.BAIXO, Estado.RESOLVIDA); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { EquRegras.EditaEquipamento(2, "Monitor", "BenQ", "ex123", DateTime.Today); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } /*Editar Colaborador e tornar inativo*/ try { ColRegras.EditaColaborador(1, "Carlos", 21, Genero.M, 164015584); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } if (ColRegras.VerificaAtividade(1)) { try { ColRegras.TornarColaboradorInativo(1); } catch (IndexOutOfRangeException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } } /*Apresentação de algumas informações*/ Console.WriteLine(" Auditorias por Colaborador:"); audAux = AudRegras.ApresentaAuditoriasColaborador(1); Console.WriteLine(" Código Colaborador: {0}", 1.ToString()); Console.WriteLine(" Quantidade auditorias: {0}", audAux.Count.ToString()); if (audAux == null) { Console.WriteLine("- Este Colaborador não tem auditorias registadas."); } foreach (AuditoriaAux aAux in audAux) { Console.WriteLine("\nCódigo da Auditoria: {0}", aAux.Codigo.ToString()); Console.WriteLine("Data: {0}", aAux.DataRegisto.ToShortDateString()); Console.WriteLine("Equipamento Associado: {0}", aAux.CodEqui.ToString()); Console.WriteLine("Quantidade Vulnerabilidades: {0}", AudRegras.ObterQuantidadeVulnerabilidadesAuditoria(aAux.Codigo).ToString()); } Console.WriteLine(); audAux.Clear(); Console.WriteLine(":{0, -71}:\n:{1, -71}:", "-> Lista de Auditorias por Ordem Decrescente de Vulnerabilidades", " "); Console.WriteLine(": {0, -7}: {1, -12}: {2, -13}: {3, -13}: {4, -17}:", "Código", "Data", "Colaborador", "Equipamento", "Vulnerabilidades"); Console.WriteLine(": {0, -7}: {0, -12}: {0, -13}: {0, -13}: {0, -17}:", ""); audAux = AudRegras.ApresentaAuditoriasOrdenadasVuln(); foreach (AuditoriaAux aAux in audAux) { Console.WriteLine(": {0, -7}: {1, -12}: {2, -13}: {3, -13}: {4, -17}:", aAux.Codigo.ToString(), aAux.DataRegisto.ToShortDateString(), aAux.CodColab.ToString(), aAux.CodEqui.ToString(), AudRegras.ObterQuantidadeVulnerabilidadesAuditoria(aAux.Codigo)); } audAux.Clear(); Console.ReadKey(); Console.Clear(); e2 = EquRegras.ObterEquipamento(1); Console.WriteLine("- Detalhes de Equipamento\n"); Console.WriteLine("Código: " + e2.Codigo.ToString()); Console.WriteLine("Tipo: " + e2.Tipo); Console.WriteLine("Data de Aquisição: " + e2.DataAquisicao.ToShortDateString()); quant = EquRegras.ObterQuantidadeVulnerabilidadesEquipamento(e2.Codigo); Console.WriteLine("Quantidade de Vulnerabilidades: " + quant.ToString()); Console.WriteLine("\nVulnerabilidades do Equipamento:\n"); if (quant > 0) { for (int i = 0; i < quant; i++) { vulAux.Add(VulRegras.ObterVulnerabilidadeEquipamento(EquRegras.ObterCodigoVulnerabilidade(e2.Codigo, i))); } } else { Console.WriteLine("- Este equipamento não tem vulnerabilidades registadas."); } foreach (VulnerabilidadeAux vAux in vulAux) { Console.WriteLine("Vulnerabilidade:\nCódigo: {0}\nEstado: {1}\nImpacto: {2}\n", vAux.Codigo.ToString(), vAux.Estado.ToString(), vAux.Impacto.ToString()); } vulnsAux = new List <int> { vul3.Codigo, vul4.Codigo, vul5.Codigo, vul6.Codigo }; Console.WriteLine("\n- Vulnerabilidades do Equipamento 2 Agrupadas por Nivel de Impacto."); vulAux = VulRegras.ListarVulnerabilidadesImpacto(vulnsAux); Console.Write("\nBaixo: "); foreach (VulnerabilidadeAux vAux in vulAux) { if (vAux.Impacto == NivelImpacto.BAIXO) { Console.Write("{0} | ", vAux.Codigo); } } Console.Write("\nModerado: "); foreach (VulnerabilidadeAux vAux in vulAux) { if (vAux.Impacto == NivelImpacto.MODERADO) { Console.Write("{0} | ", vAux.Codigo); } } Console.Write("\nElevado: "); foreach (VulnerabilidadeAux vAux in vulAux) { if (vAux.Impacto == NivelImpacto.ELEVADO) { Console.WriteLine("{0} | ", vAux.Codigo); } } Console.WriteLine(); vulAux.Clear(); Console.ReadKey(); Console.Clear(); #endregion #region GUARDAR Console.Write("Guardar?\n[1] Sim\n[x] Não\n > "); opcao = TryCatchInt(); if (opcao == 1) { try { EquRegras.GuardarEquipamentos(@"..\..\Ficheiros\Equipamentos"); } catch (IOException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { VulRegras.GuardarVulnerabilidades(@"..\..\Ficheiros\Vulnerabilidades"); } catch (IOException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { ColRegras.GuardarColaboradores(@"..\..\Ficheiros\Colaboradores"); } catch (IOException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } try { AudRegras.GuardarAuditorias(@"..\..\Ficheiros\Auditorias"); } catch (IOException x) { Console.WriteLine(x.Message); } catch (Exception x) { Console.WriteLine(x.Message); } } #endregion }