/// <summary> /// Método para apresentar o menu e recolher a opção do utilizador /// </summary> /// <returns>Opção escolhida</returns> static int Menu() { int opcao = -1; Console.Clear(); Console.WriteLine("====== MENU ======"); Console.WriteLine("1 - Registar cliente"); Console.WriteLine("2 - Existe cliente?"); Console.WriteLine(); Console.WriteLine("3 - Registar obrigação"); Console.WriteLine("4 - Existe obrigação?"); Console.WriteLine(); Console.WriteLine("5 - Registar funcionário"); Console.WriteLine("6 - Existe funcionário?"); Console.WriteLine(); Console.WriteLine("7 - Registar Registo"); Console.WriteLine(); Console.WriteLine("8 - Listar registos por obrigação"); Console.WriteLine("9 - Listar registos por cliente"); Console.WriteLine(); Console.WriteLine("10 - Elimina cliente"); Console.WriteLine("11 - Elimina obrigação"); Console.WriteLine("12 - Elimina funcionário"); Console.WriteLine(); Console.WriteLine("0 - Sair"); Console.Write("Introduza a opção que deseja: "); opcao = RegrasGerais.LeInteiro(); return opcao; }
/// <summary> /// /// </summary> static void ListaPorCliente() { // Variáveis auxiliares Cliente cliente; int nifCliente; List<Registo> listagemRegistos; // Perguntar ao utilizador o nif do cliente Console.WriteLine("Insira o nif do cliente: "); nifCliente = RegrasGerais.LeInteiro(); // Obter cliente cliente = Clientes.EnviaCliente(nifCliente); // Verificar se o cliente não existe if (cliente == null) { Console.WriteLine("Esse cliente não se encontra registado"); return; } // Obter registos do cliente listagemRegistos = Registos.ListarPorCliente(cliente); // Verificar se tem registos associados if (listagemRegistos.Count == 0) { Console.WriteLine("Não existem registos nessa obrigação."); return; } Console.WriteLine($"Nome do cliente: {cliente.Nome}"); // Listar registos do cliente foreach (Registo r in listagemRegistos) { Console.WriteLine($"Obrigação: {r.Obrigacao.Nome}"); Console.WriteLine($"Mês: {r.Mes}"); Console.WriteLine($"Ano: {r.Ano}"); Console.WriteLine($"Estado: {r.Estado}"); Console.WriteLine($"Funcionário: {r.Funcionario.Username}"); Console.WriteLine("########\n"); } }
// Opção 10 do menu /// <summary> /// Método para eliminar um cliente /// </summary> /// <returns></returns> static void EliminaCliente() { // Variável auxiliar int nif; string aux; // Limpar consola Console.Clear(); // Perguntar ao utilizador o nif do cliente que pretende eliminar Console.Write("Insira o nif do cliente que deseja eliminar: "); nif = RegrasGerais.LeInteiro(); if (nif == -1) { Console.WriteLine("O nif é inválido."); return; } if (!ControladorBL.Clientes.ExisteCliente(nif)) { Console.WriteLine("Esse cliente não se encontra registado!"); return; } Console.Clear(); Console.Write("ESTA AÇÃO É IRREVERSÍVEL! TODOS OS DADOS DESTE CLIENTE SÃO ELIMINADOS!\n TEM A CERTEZA QUE DESEJA CONTINUAR? CASO SIM, DIGITE \"S\"\n"); aux = Console.ReadLine(); if (aux != "S") { Console.WriteLine("O cliente não foi eliminado porque o utilizador cancelou."); return; } if (ControladorBL.Clientes.EliminaCliente(nif)) { Console.WriteLine("O cliente foi eliminado."); return; } Console.WriteLine("O cliente não foi eliminado."); }
// Opção 1 do menu /// <summary> /// Método para registar um novo cliente /// </summary> /// <returns></returns> static void RegistarCliente() { // Variáveis auxiliares int nif; string nome; Cliente cliente; Console.Write("Insira o NIF do cliente: "); nif = RegrasGerais.LeInteiro(); // Verificar se o NIF do cliente já está registado if (Clientes.ExisteCliente(nif)) { Console.WriteLine("O NIF indicado já se encontra registado!"); return; } Console.Write("Insira o nome: "); nome = Console.ReadLine(); // Verificar se o nome inserido é válido if (!RegrasGerais.ValidaNome(nome)) { Console.WriteLine("O nome não é válido!\n Tente novamente!"); return; } cliente = new Cliente(nif, nome); // se o cliente não for inserido if (!Clientes.RegistaCliente(cliente)) { Console.WriteLine("O cliente não foi adicionado."); return; } Console.WriteLine("O cliente foi adicionado."); }
// Opção 7 do menu /// <summary> /// Método para registar tarefas efetuadas /// </summary> /// <returns></returns> static void RegistaRegisto() { // Variáveis auxiliares Cliente cliente; Funcionario funcionario; Obrigacao obrigacao; Registo registo; Estado estadoRegisto; int mes, ano, nif, tentativas; string username, nomeObrigacao; // Inicializar variáveis cliente = null; funcionario = null; obrigacao = null; tentativas = 0; mes = 0; ano = 0; Console.WriteLine("Cria registo!"); // Ciclo que pergunta o cliente até ser válido while (cliente == null) { if (tentativas > 0) Console.WriteLine("Esse cliente não existe!"); Console.WriteLine("Insira o NIF do cliente associado: "); nif = RegrasGerais.LeInteiro(); cliente = Clientes.EnviaCliente(nif); tentativas++; } tentativas = 0; // Ciclo que pergunta o cliente até ser válido while (funcionario == null) { if (tentativas > 0) Console.WriteLine("Esse funcionário não existe!"); Console.WriteLine("Insira o username do funcionário associado: "); username = Console.ReadLine(); funcionario = Funcionarios.EnviaFuncionario(username); tentativas++; } tentativas = 0; // Ciclo que pergunta a obrigação até ser válida while (obrigacao == null) { if (tentativas > 0) Console.WriteLine("Essa obrigação não existe!"); Console.WriteLine("Insira o nome da obrigação associada: "); nomeObrigacao = Console.ReadLine(); obrigacao = Obrigacoes.EnviaObrigacao(nomeObrigacao); tentativas++; } tentativas = 0; // Pede ao utilizador o estado do registo estadoRegisto = RegrasGerais.LeEstado(); // Ciclo para verificar se o mês é válido while (mes > 12 || mes < 1) { if (tentativas > 0) Console.WriteLine("Esse mês não existe!"); Console.WriteLine("Insira o mês do registo: "); mes = RegrasGerais.LeInteiro(); tentativas++; } tentativas = 0; // Ciclo para verificar se o ano é válido while (ano < 2000 || ano > DateTime.Now.Year) { if (tentativas > 0) Console.WriteLine("Esse ano não é aceite!"); Console.WriteLine("Insira o ano do registo: "); ano = RegrasGerais.LeInteiro(); tentativas++; } // Cria o registo registo = new Registo(cliente, funcionario, obrigacao, mes, ano, estadoRegisto); // Verificar se o registo não foi adicionado if (!Registos.RegistaRegisto(registo)) { Console.WriteLine("O registo não foi registado."); return; } Console.WriteLine("O registo foi registado."); }