public void RegistrarCandidatos() { Console.WriteLine("Bienvenido al registro de candidatos."); Console.WriteLine($"Candidatos actuales: {Candidatos.Count}"); foreach (var candidato in Candidatos) { Console.WriteLine($"{candidato.NumeroCandidato}. {candidato.NombreCandidato}"); } Console.WriteLine("Que desea hacer?"); Console.WriteLine("1. Agregar candidato"); Console.WriteLine("2. Editar candidato"); Console.WriteLine("3. Eliminar Candidato"); Console.WriteLine("4. Salir"); string res = Console.ReadLine(); int opt = 0; while (!int.TryParse(res, out opt) || (opt != 1 && opt != 2 && opt != 3 && opt != 4)) { Console.WriteLine("Accion no reconocida, ingrese una opcion adecuada: "); Console.WriteLine("Que desea hacer?"); Console.WriteLine("1. Agregar candidato"); Console.WriteLine("2. Editar candidato"); Console.WriteLine("3. Eliminar Candidato"); Console.WriteLine("4. Salir"); res = Console.ReadLine(); } bool Reiniciar = true; switch (opt) { case 1: Candidatos.Add(Candidato.CrearCandidato(Candidatos.Select(x => x.NumeroCandidato).ToArray())); Console.WriteLine("Candidato añadido correctamente"); break; case 2: if (Candidatos.Count > 0) { Console.WriteLine("Ingrese el numero del candidato:"); res = Console.ReadLine(); int numero; while (!int.TryParse(res, out numero) && !Candidatos.Select(x => x.NumeroCandidato).Contains(numero)) { Console.WriteLine("Valor no reconocido."); Console.WriteLine("Ingrese el numero del candidato:"); res = Console.ReadLine(); } Candidato candidatoRegistrado = Candidatos.FirstOrDefault(x => x.NumeroCandidato == numero); candidatoRegistrado = Candidato.EditarCandidato(candidatoRegistrado); Console.WriteLine("Candidato editado correctamente"); } else { Console.WriteLine("No se encontraron candidatos, será direccionado a crear uno."); Candidatos.Add(Candidato.CrearCandidato(Candidatos.Select(x => x.NumeroCandidato).ToArray())); } break; case 3: if (Candidatos.Count > 0) { Console.WriteLine("Ingrese el numero del candidato:"); res = Console.ReadLine(); int numero; while (!int.TryParse(res, out numero) && !Candidatos.Select(x => x.NumeroCandidato).Contains(numero)) { Console.WriteLine("Valor no reconocido."); Console.WriteLine("Ingrese el numero del candidato:"); res = Console.ReadLine(); } Candidato candidatoRegistrado = Candidatos.FirstOrDefault(x => x.NumeroCandidato == numero); Console.WriteLine($"Escriba 'si' para borrar al candidato: ({candidatoRegistrado.NumeroCandidato}) {candidatoRegistrado.NombreCandidato}"); if (Console.ReadLine().Equals("si")) { Candidatos.Remove(candidatoRegistrado); Console.WriteLine("Candidato eliminado correctamente"); } } else { Console.WriteLine("No se encontraron candidatos, será direccionado a crear uno."); Candidatos.Add(Candidato.CrearCandidato(Candidatos.Select(x => x.NumeroCandidato).ToArray())); } break; case 4: Reiniciar = false; break; } if (Reiniciar) { Console.Clear(); RegistrarCandidatos(); } }
public void ComenzarVotacion() { if (Candidatos.Count > 1) { Console.WriteLine("Bienvenido al sistema de votacion..."); Console.WriteLine("Las siguientes comunas son las registradas: "); foreach (var comuna in Comunas) { Console.WriteLine($"{Comunas.IndexOf(comuna)}. {comuna.NombreComuna}."); } Console.WriteLine("Si su comuna no se encuentra registrada por favor comuniquese con el asesor"); Console.WriteLine("Ingrese el número de su comuna"); string res = Console.ReadLine(); //Si se escribe el comando "salir" se dejarán de tomar votos, cerrando la votacion if (!res.Equals("salir")) { int numero; while (!int.TryParse(res, out numero) || (Comunas[numero] == null)) { Console.WriteLine("Valor no reconocido."); Console.WriteLine("Ingrese el numero de la comuna:"); res = Console.ReadLine(); } Comuna comunaSeleccionada = Comunas[numero]; Console.WriteLine("Candidatos actuales:"); foreach (var candidato in Candidatos) { Console.WriteLine($"{candidato.NumeroCandidato}. {candidato.NombreCandidato}"); } Console.WriteLine("Ingrese el numero del candidato por el cual desea votar:"); res = Console.ReadLine(); int numeroCandidato; while (!int.TryParse(res, out numeroCandidato) && !Candidatos.Select(x => x.NumeroCandidato).Contains(numeroCandidato)) { Console.WriteLine("Valor no reconocido."); Console.WriteLine("Ingrese el numero del candidato:"); res = Console.ReadLine(); } Candidato candidatoRegistrado = Candidatos.FirstOrDefault(x => x.NumeroCandidato == numeroCandidato); if (comunaSeleccionada.Votos.FirstOrDefault(x => x.NumeroCandidato == numeroCandidato) is VotoCandidato votoCandidato) { votoCandidato.CantidadVotos += 1; } else { comunaSeleccionada.Votos.Add(new VotoCandidato(candidatoRegistrado.NumeroCandidato)); } Console.WriteLine("Gracias por su voto, el sistema recibirá una nueva votacion en 5 segundos"); Thread.Sleep(5000); Console.Clear(); ComenzarVotacion(); } else { TerminarVotacion(); } } else { Console.WriteLine("No existen candidatos registrados, por favor registre mínimo 2"); Thread.Sleep(2000); Console.Clear(); RegistrarCandidatos(); } }