Exemple #1
0
        public static void registrarTraduccion(Palabra palabra, Usuario user, Diccionario dicc)
        {
            Traduccion tTraduc = new Traduccion();

            palabra               = palaMng.RetrieveByDic(palabra);
            tTraduc.palabraId     = palabra.palabraId;
            tTraduc.diccionarioId = dicc.diccionarioId;
            tTraduc.usuarioId     = user.usuarioId;
            tTraduc.fecha         = DateTime.Now;
            traducMng.Create(tTraduc);
        }
        public static void DoIt()
        {
            try
            {
                var secionIniciada = false;

                while (secionIniciada == false)
                {
                    secionIniciada = IniciarSesion();
                }

                Console.WriteLine(" ");
                Console.WriteLine("Bienvenido " + sesion.Nombre + " ");
                Console.WriteLine(" ");
                Console.WriteLine("A que idioma deseas traducir el dia de hoy:");
                Console.WriteLine(" ");
                var idioma = new Idioma {
                    Nombre = Console.ReadLine().ToLower()
                };

                IdiomaManager img          = new IdiomaManager();
                var           nombreIdioma = img.RetrieveByName(idioma);
                var           frase        = new Frase();

                if (nombreIdioma == null)
                {
                    img.Create(idioma);
                    nombreIdioma = img.RetrieveByName(idioma);
                }

                if (idioma.Nombre.Equals(nombreIdioma.Nombre, StringComparison.CurrentCultureIgnoreCase))
                {
                    Console.WriteLine("");
                    Console.WriteLine("Ingrese la frase que desea traducir, en espa\u00f1ol:");

                    string palabra = Console.ReadLine().ToLower();
                    frase = new Frase {
                        Palabra = palabra
                    };
                    FraseTraducida fraseTraducida = new FraseTraducida
                    {
                        Palabra      = frase.Palabra,
                        NombreIdioma = idioma.Nombre
                    };
                    FraseManager          fmg  = new FraseManager();
                    FraseTraducidaManager ftmg = new FraseTraducidaManager();

                    if (palabra.Contains(" "))
                    {
                        if (fmg.RetrieveByName(frase) == null)
                        {
                            fmg.Create(frase);
                        }
                        if (ftmg.RetrieveByName(fraseTraducida) == null)
                        {
                            var listaPalabras = palabra.Split(' ');
                            var traducida     = "";
                            int popularidad   = 0;

                            foreach (string palActual in listaPalabras)
                            {
                                frase = new Frase {
                                    Palabra = palActual
                                };
                                if (fmg.RetrieveByName(frase) == null)
                                {
                                    fmg.Create(frase);
                                }

                                frase = fmg.RetrieveByName(frase);

                                fraseTraducida = new FraseTraducida
                                {
                                    Palabra      = frase.Palabra,
                                    NombreIdioma = idioma.Nombre
                                };

                                if (ftmg.RetrieveByName(fraseTraducida) == null)
                                {
                                    fraseTraducida = SolicitarTraduccion(frase, idioma, fraseTraducida);
                                }
                                fraseTraducida = ftmg.RetrieveByName(fraseTraducida);
                                traducida     += fraseTraducida.PalabraTraducida + " ";

                                fmg.AddPopularidad(frase);
                                frase        = fmg.RetrieveByName(frase);
                                popularidad += frase.Popularidad;
                            }

                            frase = new Frase {
                                Palabra = palabra, Popularidad = popularidad
                            };
                            fraseTraducida = new FraseTraducida
                            {
                                Palabra          = frase.Palabra,
                                PalabraTraducida = traducida,
                                NombreIdioma     = idioma.Nombre
                            };

                            ftmg.Create(fraseTraducida);
                        }
                    }
                    else
                    {
                        frase = new Frase {
                            Palabra = palabra
                        };

                        if (fmg.RetrieveByName(frase) == null)
                        {
                            fmg.Create(frase);
                        }
                        frase = fmg.RetrieveByName(frase);

                        if (ftmg.RetrieveByName(fraseTraducida) == null)
                        {
                            fraseTraducida = SolicitarTraduccion(frase, idioma, fraseTraducida);
                        }
                    }

                    fmg.AddPopularidad(frase);
                    frase          = fmg.RetrieveByName(frase);
                    fraseTraducida = ftmg.RetrieveByName(fraseTraducida);
                    Imprimir(fraseTraducida);



                    Traduccion registro = new Traduccion
                    {
                        Usuario       = sesion.Nombre,
                        Idioma        = idioma.Nombre,
                        FraseEspannol = fraseTraducida.Palabra,
                        FraseIdioma   = fraseTraducida.PalabraTraducida,
                        Popularidad   = frase.Popularidad
                    };
                    TraduccionManager tmg = new TraduccionManager();
                    tmg.Create(registro);
                }
            }

            catch (BussinessException bex)
            {
                Console.WriteLine("***************************");
                Console.WriteLine("ERROR: \n");
                Console.WriteLine(bex.AppMessage.Message);
                Console.WriteLine("***************************");
            }
            finally
            {
                Console.WriteLine("Continue? Y/N");
                var moreActions = Console.ReadLine();

                if (moreActions.Equals("Y", StringComparison.CurrentCultureIgnoreCase))
                {
                    DoIt();
                }
            }

            Console.ReadLine();
        }