Ejemplo n.º 1
0
 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();
 }
Ejemplo n.º 2
0
 /// <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);
     }
 }
Ejemplo n.º 3
0
 /// <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);
     }
 }
Ejemplo n.º 4
0
 /// <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);
     }
 }
Ejemplo n.º 5
0
 /// <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);
     }
 }
Ejemplo n.º 6
0
 /// <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);
     }
 }
Ejemplo n.º 7
0
 /// <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);
     }
 }
Ejemplo n.º 9
0
        /// <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());
                    }
                }
            }
        }
Ejemplo n.º 10
0
        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();
        }
Ejemplo n.º 11
0
        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
                }
            }
        }
Ejemplo n.º 12
0
        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();
        }
Ejemplo n.º 13
0
        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
        }