// HACER EL DIAGNOSTICO
        public static void Diagnostico(IMC_INFORMACION imc)
        {
            imc.codigo = Guid.NewGuid().ToString();

            imc.indiceMasa = imc.pesoKg / (imc.estaturaMetro * imc.estaturaMetro);
            Console.Clear();
            diagnosticar(imc);
            Console.WriteLine("-----------------------------------------------------------------------------------------------");
            Console.WriteLine("1: Realizar otro diagnostico         2: Ver todos los diagnosticos       3: salir");
            string n = Console.ReadLine();

            if (n == "1")
            {
                listDiagnosticos.Add(imc);
                Run();
            }
            else if (n == "2")
            {
                listDiagnosticos.Add(imc);
                verTodosLosDiagnosticos();
                Console.ReadKey();
            }
            else if (n == "3")
            {
                Console.WriteLine("Hasta Luego....!");
                Console.ReadKey();
            }
            else
            {
                Console.WriteLine("Opción no valida..");
                Console.ReadKey();
                Diagnostico(imc);
            }
        }
        public static void Opciones()
        {
            IMC_INFORMACION imc = new IMC_INFORMACION();

            Console.WriteLine(" Cual es tu nombre?");
            Console.Write(" Nombre:");
            imc.nombrePersona = Console.ReadLine();
            Console.WriteLine();

            //Console.WriteLine(" {0}, Que edad tienes?",imc.nombrePersona.TrimStart());
            //Console.Write(" Edad:");
            //imc.edad = int.Parse(Console.ReadLine());
            //Console.WriteLine();

            //Console.WriteLine(" {0} años, muy bien {1}, cuanto mides?", imc.edad, imc.nombrePersona);
            Console.WriteLine(" {0}, Cuanto mides?", imc.nombrePersona.TrimStart());
            Console.Write(" Estatura(Pie):");
            imc.estaturaMetro = double.Parse(Console.ReadLine()) / 3.2808;

            Console.WriteLine();
            Console.WriteLine(" muy bien, cuanto pesas?");
            Console.Write(" Peso(lib):");
            imc.pesoKg = double.Parse(Console.ReadLine()) / 2.2046;

            Diagnostico(imc);
        }
        // MOSTRAR EL DIAGNOSTICO
        public static void diagnosticar(IMC_INFORMACION imc)
        {
            if (imc.indiceMasa < 18)
            {
                imc.diagnostico = "Peso bajo, posible signo de desnutricion";
            }
            else if (imc.indiceMasa >= 18 && imc.indiceMasa <= 24.9)
            {
                imc.diagnostico = "Peso normal";
            }
            else if (imc.indiceMasa >= 25 && imc.indiceMasa <= 26.9)
            {
                imc.diagnostico = "Sobrepeso";
            }
            else if (imc.indiceMasa >= 27 && imc.indiceMasa <= 29.9)
            {
                imc.diagnostico = "Obesidad grado 1, Riesgo relativo alto para desarrollar enfermedades cardiovasculares";
            }
            else if (imc.indiceMasa >= 30 && imc.indiceMasa <= 39.9)
            {
                imc.diagnostico = "Obesidad grado 2, Riesgo relativo muy alto para desarrollar enfermedades cardiovasculares";
            }
            else
            {
                imc.diagnostico = "Obesidad grado 3 Extrema o Mórbida, Riesgo relativo extremedamente alto para desarrollar enfermedades cardiovasculares";
            }

            Console.WriteLine("------------------------------------ DIAGNOSTICO IMC -----------------------------------------");
            Console.WriteLine();
            Console.WriteLine(string.Format("Señor/ra:    {0}", imc.nombrePersona));
            Console.WriteLine(string.Format("Estatura:    {0} pie ", Math.Round((imc.estaturaMetro * 3.2808), 2)));
            Console.WriteLine(string.Format("Peso:        {0} Lb ", Math.Round((imc.pesoKg * 2.2046), 2)));
            Console.WriteLine(string.Format("IMC:         {0}", Math.Round(imc.indiceMasa, 2)));
            string diag = string.Format("Diagnostico: {0} ", imc.diagnostico);

            if (diag.Length > 94)
            {
                diag = diag.Insert(93, "\n");
            }

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine(diag);
            Console.WriteLine();
            Console.ForegroundColor = ConsoleColor.White;
        }
        // VER TODOS LOS DIAGNOSTICOS
        public static void verTodosLosDiagnosticos()
        {
            Console.Clear();
            if (listDiagnosticos.Count > 0)
            {
                List <IMC_INFORMACION> orden = new List <IMC_INFORMACION>();
                double temp = 0;
                string codigoDiagnostico = "";

                // ORDENAR DE MAYOR A MENOR
                for (int i = 0; i < listDiagnosticos.Count; i++)
                {
                    IMC_INFORMACION imc = listDiagnosticos[i];

                    // VERIFICAR SINO ESTA DIAGNOSTICO NO SE ENCUENTRA EN LA LISTA DE ORDEN
                    if (orden.Exists(or => or.codigo == imc.codigo))
                    {
                        // SI ES EL ULTIMO BUCLE DE LA LISTA, AGREGAR EL DIAGNOSTICO MAYOR ENCONTRADO
                        if (i == (listDiagnosticos.Count - 1))
                        {
                            var cp1 = listDiagnosticos.Find(diag => diag.codigo == codigoDiagnostico);

                            if (cp1 == null)
                            {
                                Console.WriteLine("Error:diag:{0} i:{1} temp:{2}", codigoDiagnostico, i, temp);
                                continue;
                            }

                            IMC_INFORMACION I = new IMC_INFORMACION()
                            {
                                codigo        = cp1.codigo,
                                nombrePersona = cp1.nombrePersona,
                                pesoKg        = cp1.pesoKg,
                                estaturaMetro = cp1.estaturaMetro,
                                indiceMasa    = cp1.indiceMasa,
                                diagnostico   = cp1.diagnostico,
                            };
                            orden.Add(I);
                            // SI LA LISTA DE ORDEN ES MENOR A LA DE DIAGNOSTICO, REINICIAR EL BUCLE
                            if (orden.Count < listDiagnosticos.Count)
                            {
                                temp = 0;
                                codigoDiagnostico = "";
                                i = -1;
                            }
                        }
                        continue;
                    }
                    // DETERMINAR CUAL ES EL VALOR MAYOR EN LA LISTA
                    if (imc.indiceMasa > temp)
                    {
                        temp = imc.indiceMasa;
                        codigoDiagnostico = imc.codigo;
                    }

                    // REINICIAR BUCLE Y GUARDAR EL VALOR MAYOR
                    if (i == (listDiagnosticos.Count - 1) && orden.Count < listDiagnosticos.Count)
                    {
                        var             cop = listDiagnosticos.Find(diag => diag.codigo == codigoDiagnostico);
                        IMC_INFORMACION I   = new IMC_INFORMACION()
                        {
                            codigo        = cop.codigo,
                            nombrePersona = cop.nombrePersona,
                            pesoKg        = cop.pesoKg,
                            estaturaMetro = cop.estaturaMetro,
                            indiceMasa    = cop.indiceMasa,
                            diagnostico   = cop.diagnostico,
                        };
                        orden.Add(I);

                        temp = 0;
                        codigoDiagnostico = "";
                        i = -1;
                    }
                }

                // MOSTRAR LA LISTA
                for (int i = 0; i < orden.Count; i++)
                {
                    diagnosticar(orden[i]);
                }
                Console.WriteLine("-----------------------------------------------------------------------------------------------");
                Console.WriteLine("1: Realizar otro diagnostico      2: salir");
                string n = Console.ReadLine();
                if (n == "1")
                {
                    Run();
                }
                else if (n == "2")
                {
                    Console.WriteLine("Hasta Luego....!");
                    Console.ReadKey();
                }
                else
                {
                    Console.WriteLine("Opción no valida..");
                    Console.ReadKey();
                    verTodosLosDiagnosticos();
                }
            }
        }