Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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();
        }