public void AnalisarPostagens()
        {
            using (var context = new Challenge_BDEntities())
            {
                //Busca postagens processadas
                var TodasPostagens = context.PostagensProcessadas.AsNoTracking().Include("Postagens").AsNoTracking().ToList();

                //Busca as Termos classificados
                var Termos = context.ClassificacaoTermo.ToList();

                //Varrer todas as postagens processadas para adicionar ou retirar peso.
                foreach (var postagem in TodasPostagens)
                {
                    //Procurar em cada postagem os termos a serem analisados
                    foreach (var termo in Termos)
                    {
                        if (postagem.PostProcessado.Contains(" " + termo.Termo.ToLower() + " "))
                        {
                            //Cria nova item de vinculo das tabelas
                            var pesoPostagens = new PesoPostagens();
                            pesoPostagens.IdTermo     = termo.Id;
                            pesoPostagens.IdPost      = postagem.IdPost;
                            pesoPostagens.Peso        = termo.Peso;
                            pesoPostagens.Instituicao = postagem.Postagens.Instituicao;

                            //Adiciona Tabela de Peso e Postagem
                            context.PesoPostagens.Add(pesoPostagens);
                        }
                    }
                }

                //Salva no banco de dados
                context.SaveChanges();
            }
        }
Example #2
0
        public void ProcessarPostagens()
        {
            using (var context = new Challenge_BDEntities())
            {
                //Busca postagens não processadas
                var TodasPostagens = context.Postagens.Where(p => p.PostagemProcessada == false).ToList();

                //Varrer todas as postagens para retirar palavras
                foreach (var postagem in TodasPostagens)
                {
                    if (postagem.PostagensProcessadas == null)
                    {
                        var PostProc = new PostagensProcessadas();

                        string novoPost = postagem.Post.Replace(" a ", " ");
                        novoPost = novoPost.Replace(" o ", " ");
                        novoPost = novoPost.Replace(" com ", " ");
                        novoPost = novoPost.Replace(" como ", " ");

                        novoPost = novoPost.Replace(" na ", " ");
                        novoPost = novoPost.Replace(" nas ", " ");
                        novoPost = novoPost.Replace(" no ", " ");
                        novoPost = novoPost.Replace(" nos ", " ");

                        novoPost = novoPost.Replace(" de ", " ");
                        novoPost = novoPost.Replace(" da ", " ");
                        novoPost = novoPost.Replace(" das ", " ");
                        novoPost = novoPost.Replace(" do ", " ");
                        novoPost = novoPost.Replace(" dos ", " ");
                        novoPost = novoPost.Replace(" fui ", " ");
                        novoPost = novoPost.Replace(" la ", " ");

                        //Retirar citações de usuarios na postagem
                        while (novoPost.Contains("@"))
                        {
                            string a   = novoPost.Substring(novoPost.IndexOf("@"));
                            string usu = "";

                            if (a.IndexOf(" ") == -1)
                            {
                                usu = a.Substring(a.IndexOf("@"));
                            }
                            else
                            {
                                usu = a.Substring(a.IndexOf("@"), a.IndexOf(" "));
                            }

                            novoPost = novoPost.Replace(usu, " ");
                        }

                        //Adiciona Novo registro
                        PostProc.PostProcessado = novoPost;
                        PostProc.IdPost         = postagem.IdPost;
                        context.PostagensProcessadas.Add(PostProc);
                        context.SaveChanges();


                        ////Atualiza postagem anterior como já processada
                        //var postAntigo = context.Postagens.Where(p => p.IdPost == postagem.IdPost).FirstOrDefault();
                        //postAntigo.PostagemProcessada = true;

                        //context.SaveChanges();
                    }
                }
            }
        }