/// <summary> /// Controla el flujo de ejecución de la aplicación. /// </summary> internal void Iniciar() { while (!PuntoDeVenta.SALIR) { int opcionSeleccionada = MostrarMenu(); try { Opcion opcion = ListaOpciones.Obtener(opcionSeleccionada); opcion.EjecutarAccion(); } catch (Exception ex) { Console.WriteLine(ex.Message + "\n"); } Iniciar(); } }
/// <summary> /// Permite obtener una opción según su código. /// </summary> /// <param name="codigo">El código de la opción</param> /// <returns>La opción encontrada.</returns> /// <exception cref="OpcionInvalidaException">Si la opción no existe.</exception> internal static Opcion Obtener(int codigo) { Opcion opcion = null; foreach (Opcion o in opciones) { if (o.Codigo.Equals(codigo)) { opcion = o; break; } } if (opcion == null) { throw new OpcionInvalidaException("Opción inválida."); } return(opcion); }