protected void btnSalvar_Click(object sender, EventArgs e) { try { if (Request["Id"] == null) { manterTag = new ManterTag(); _tagEdicao = ObterObjetoTag(); manterTag.IncluirTag(_tagEdicao); } else { _tagEdicao = ObterObjetoTag(); manterTag.AlterarTag(_tagEdicao); } Session.Remove("TagEdit"); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Dados Gravados com Sucesso !", "ListarTag.aspx"); } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); } }
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; } } } }