public static void MenuIngresoDatos() { // Ingreso de datos. Console.Clear(); Console.WriteLine("Ingrese los valores de X separados por punto y coma (;) y al finalizar, presione la tecla enter. Ejemplo: 2.3;2.1;1.0"); var valoresX = Console.ReadLine(); if (_orquestador.DatosValidos(valoresX)) { _orquestador.InicializarPuntosX(valoresX); } else { Console.Clear(); Console.WriteLine("Datos inválidos, presione una tecla para volver al menu principal."); Console.ReadKey(); return; } Console.Clear(); Console.WriteLine("Ingrese los valores de Y separados por punto y coma (;) y al finalizar, presione la tecla enter. Ejemplo: 2.3;2.1;1.0"); var valoresY = Console.ReadLine(); if (_orquestador.DatosValidos(valoresY)) { _orquestador.InicializarPuntosY(valoresY); } else { Console.Clear(); Console.WriteLine("Datos inválidos, presione una tecla para volver al menu principal."); Console.ReadKey(); return; } }
public static void IngresoDatos(OpcionPuntosEnum opcion) { var opcionesX = new Dictionary <OpcionPuntosEnum, Action <string> > { { OpcionPuntosEnum.Inicializar, _orquestador.InicializarPuntosX }, { OpcionPuntosEnum.Agregar, _orquestador.AgregarPuntosX }, { OpcionPuntosEnum.Eliminar, _orquestador.EliminarPuntos }, }; var opcionesY = new Dictionary <OpcionPuntosEnum, Action <string> > { { OpcionPuntosEnum.Inicializar, _orquestador.InicializarPuntosY }, { OpcionPuntosEnum.Agregar, _orquestador.AgregarPuntosY } }; Action <string> ejecutar; Console.WriteLine("Ingrese los valores de X separados por punto y coma (;) y al finalizar, presione la tecla enter. Ejemplo: 2,3;2,1;1,0"); var valoresX = Console.ReadLine(); if (!_orquestador.DatosValidos(valoresX)) { DatosInvalidos(); return; } if (valoresX.Split(';').Length < 2 && opcion != OpcionPuntosEnum.Agregar) { Console.Clear(); Console.WriteLine("Es necesario ingresar al menos 2 valores de x. " + menuAnterior); Console.WriteLine(); Console.ReadKey(); return; } if (!_orquestador.DatosOrdenados(valoresX)) { Console.Clear(); Console.WriteLine(); Console.WriteLine("Los valores de las x deben estar ordenados. " + menuAnterior); Console.WriteLine(); Console.ReadKey(); return; } opcionesX.TryGetValue(opcion, out ejecutar); try { ejecutar.Invoke(valoresX); } catch (ValorRepetidoException) { Console.WriteLine(); Console.WriteLine("Los valores de x no pueden estar repetidos. " + menuAnterior); Console.WriteLine(); Console.ReadKey(); return; } if (opcion != OpcionPuntosEnum.Eliminar) { Console.Clear(); Console.WriteLine("Ingrese los valores de Y separados por punto y coma (;) y al finalizar, presione la tecla enter. Ejemplo: 2,3;2,1;1,0"); var valoresY = Console.ReadLine(); if (_orquestador.DatosValidos(valoresY)) { opcionesY.TryGetValue(opcion, out ejecutar); ejecutar.Invoke(valoresY); } else { DatosInvalidos(); return; } } MenuInterpolaciones(); }