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(); } }
public Votacion() { Comunas = Comuna.SeedComuna(); }