Esempio n. 1
0
 private void AtualizarListaProvisoriaDeIdNiveis(Sebrae.Academico.Dominio.Classes.Tag tag, byte nivel)
 {
     //Senão existir, adiciona
     if (!this.ListaProvisoriaComIDDosPais.Any(x => x.Key == nivel))
     {
         this.ListaProvisoriaComIDDosPais.Add(nivel, tag);
     }
     else
     {
         //Se já existir, atualiza
         this.ListaProvisoriaComIDDosPais[nivel] = tag;
     }
 }
Esempio n. 2
0
        private void ProcessarArquivoCSV()
        {
            //Imagem enviada
            if (this.ArquivoFoiEnviado)
            {
                if (fupldArquivoTags != null && fupldArquivoTags.PostedFile != null &&
                    fupldArquivoTags.PostedFile.ContentLength > 0)
                {
                    var arquivoCSV = fupldArquivoTags.PostedFile.InputStream;

                    var reader = new StreamReader(arquivoCSV, System.Text.Encoding.UTF8);

                    // var reader = new StreamReader(File.OpenRead(@"C:\Users\rafael.nardo\Downloads\univoc\univoc_competitividade.csv"));

                    byte qtdTracosNivelAtual = 0;
                    Sebrae.Academico.Dominio.Classes.Tag         tagAtual  = null;
                    IList <Sebrae.Academico.Dominio.Classes.Tag> ListaTags = new List <Sebrae.Academico.Dominio.Classes.Tag>();
                    ManterTag manterTag          = new ManterTag();
                    string    descricaoComTracos = string.Empty;
                    string    descricaoSemTracos = string.Empty;
                    this.InicializarLista();
                    char hifen = "-".ToArray()[0];

                    Sebrae.Academico.Dominio.Classes.Tag pai = null;

                    Sebrae.Academico.Dominio.Classes.Tag paiObtidoDoBanco = null;
                    while (!reader.EndOfStream)
                    {
                        var linhaDoArquivoCSV = reader.ReadLine();

                        descricaoComTracos = linhaDoArquivoCSV;
                        descricaoSemTracos = descricaoComTracos.Replace("-", "");

                        foreach (var caractere in descricaoComTracos)
                        {
                            if (caractere.Equals(hifen)) //"-"
                            {
                                qtdTracosNivelAtual++;
                            }
                            else
                            {
                                break;
                            }
                        }

                        tagAtual      = new Dominio.Classes.Tag();
                        tagAtual.Nome = descricaoSemTracos;

                        if (string.IsNullOrWhiteSpace(descricaoSemTracos))
                        {
                            qtdTracosNivelAtual = 0;
                            continue;
                        }

                        tagAtual.NumeroNivel = qtdTracosNivelAtual;

                        if (qtdTracosNivelAtual > 0)
                        {
                            pai = ListaProvisoriaComIDDosPais.FirstOrDefault(x => x.Key == qtdTracosNivelAtual - 1).Value;
                            if (pai.ID > 0)
                            {
                                paiObtidoDoBanco = new ManterTag().ObterTagPorID(pai.ID);
                            }
                            else
                            {
                                paiObtidoDoBanco = new ManterTag().ObterTagPorFiltro(new Dominio.Classes.Tag()
                                {
                                    Nome = pai.Nome
                                }).FirstOrDefault();
                            }

                            if (paiObtidoDoBanco == null)
                            {
                                throw new AcademicoException(string.Format("Não foi possível encontrar a tag pai da tag {0}", pai.Nome));
                            }

                            tagAtual.TagPai = paiObtidoDoBanco;
                        }

                        //Antes de incluir, verifica primeiro se já existe
                        bool tagJaExiste = new ManterTag().VerificarExistenciaPorNome(tagAtual.Nome);

                        if (!tagJaExiste)
                        {
                            manterTag.IncluirTag(tagAtual);
                        }
                        //else
                        //{
                        //    qtdTracosNivelAtual = 0;
                        //    continue;
                        //}

                        if (ListaProvisoriaComIDDosPais.Any(x => x.Key == tagAtual.NumeroNivel.Value))
                        {
                            ListaProvisoriaComIDDosPais[qtdTracosNivelAtual] = tagAtual;
                        }
                        else
                        {
                            ListaProvisoriaComIDDosPais.Add(tagAtual.NumeroNivel.Value, tagAtual);
                        }

                        qtdTracosNivelAtual = 0;
                    }
                }
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Obtéum um objeto Tag pelo id do nível
 /// </summary>
 /// <param name="nivel"></param>
 /// <returns></returns>
 private Sebrae.Academico.Dominio.Classes.Tag ObterTagPorNivel(byte nivel)
 {
     Sebrae.Academico.Dominio.Classes.Tag tag = this.ListaProvisoriaComIDDosPais[nivel];
     return(tag);
 }