public void vincular() { int i = 1; while (i == 1) { Console.Out.WriteLine("Elija una condicion: \n"); Console.Out.WriteLine("1)Periodo de aceptabilidad 2)Ninguna\n"); int condicionElegida = int.Parse(Console.ReadLine()); switch (condicionElegida) { case 1: condiciones.Add(new PeriodoDeAceptabilidad()); break; case 2: break; } Console.Out.WriteLine("Si desea seguir agregando condiciones presione 1. Para dejar de agregar presione 0: \n"); i = int.Parse(Console.ReadLine()); } Console.Out.WriteLine("Elija un criterio: \n"); Console.Out.WriteLine("1)Valor-Primer egreso \n"); Console.Out.WriteLine("2)Valor-Primer ingreso \n"); Console.Out.WriteLine("3)Fecha-Primer egreso \n"); Console.Out.WriteLine("4)Mix \n"); criterio = int.Parse(Console.ReadLine()); switch (criterio) { case 1: procesoDeVinculacion = new ValorPrimerEgreso(); procesoDeVinculacion.condiciones = condiciones; procesoDeVinculacion.vincular(ingresos, egresos); break; case 2: procesoDeVinculacion = new ValorPrimerIngreso(); procesoDeVinculacion.condiciones = condiciones; procesoDeVinculacion.vincular(ingresos, egresos); break; case 3: procesoDeVinculacion = new FechaPrimerEgreso(); procesoDeVinculacion.condiciones = condiciones; procesoDeVinculacion.vincular(ingresos, egresos); break; case 4: int continuar = 1; while (continuar != 2) { Console.Out.WriteLine("Elegir criterio:"); Console.Out.WriteLine("1)Valor-primer egreso \n"); Console.Out.WriteLine("2)Valor-primer ingreso \n"); Console.Out.WriteLine("3)Fecha-primer egreso \n"); criterio = int.Parse(Console.ReadLine()); switch (criterio) { case 1: vinculaciones.Add(new ValorPrimerEgreso()); break; case 2: vinculaciones.Add(new ValorPrimerIngreso()); break; case 3: vinculaciones.Add(new FechaPrimerEgreso()); break; } Console.Out.WriteLine("1)Agregar Criterio\n"); Console.Out.WriteLine("2)Realizar vinculacion\n"); continuar = int.Parse(Console.ReadLine()); } foreach (Vinculacion vinculacion in vinculaciones) { vinculacion.vincular(ingresos, egresos); } break; } }