public async Task <IActionResult> AddEdit(decimal id, BaseConhecimentoAddEditVM model) { ModelState.Remove("IdUsuarioRegistro"); ModelState.Remove("DataHoraRegistro"); ModelState.Remove("SitBase"); ViewBag.IsEditing = "N"; if (id > 0) { ModelState.Remove("PalavraChave"); ViewBag.IsEditing = "S"; } if (!ModelState.IsValid) { await getTipoVisualizacaoSelect(); await getSituacaoBaseSelect(); await getProdutosBaseSelect(); return(View(model)); } var userContext = Convert.ToDecimal(HttpContextHelper.GetAuthUserId(HttpContext)); var data = model.ToData(userContext, id); if (id == 0) { data.DtHrRegistro = Convert.ToDecimal(DateTime.Now.ToString("yyyyMMddHHmmss")); data.StBase = EnumHelper.SituacaoBase.BA9.ToString(); _baseconhecimentoRepo.Add(data); // Palavras Chave existentes var words = model.PalavraChave.KeyWordToArray(); // Lista das palavras chave que foram informadas var wordID = new List <decimal>(); // Verifica se a Palavra Chave informada já existe na tabela var wordsData = await _palavrachaveRepo.GetAsync(); foreach (var word in words) { decimal IdWord = wordsData .Where(c => c.Palavra.ToUpper() == word.ToUpper()) .Select(c => c.IdPalavra).FirstOrDefault(); if (IdWord == 0) { // Cria a nova palavra chave var plvr = new PalavraChave() { Palavra = word, IdUsuarioRegistro = data.IdUsuarioRegistro }; _palavrachaveRepo.Add(plvr); wordID.Add(plvr.IdPalavra); } else { wordID.Add(IdWord); } } // Busca Chave foreach (var word in wordID) { _buscachaveRepo.Add(new BuscaChave() { Id = data.Id, IdPalavra = word, IdUsuarioRegistro = data.IdUsuarioRegistro }); } } else { _baseconhecimentoRepo.Update(data); } await _uow.CommitAsync(); return(RedirectToAction("Index")); }
internal Roteiro Obter(int id) { Roteiro roteiro = new Roteiro(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { #region Roteiro Comando comando = bancoDeDados.CriarComando(@"select a.numero, a.versao versao_atual, a.nome, a.setor setor_id, s.nome setor_texto, a.situacao, a.observacoes, a.finalidade, a.data_criacao, a.tid, (select r.versao from hst_roteiro r where r.tid = a.tid and r.roteiro_id = a.id) versao from {0}tab_roteiro a, {0}tab_setor s where a.setor = s.id and a.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { roteiro.Id = id; roteiro.Tid = reader["tid"].ToString(); roteiro.Versao = Convert.ToInt32(reader["versao_atual"]); roteiro.VersaoAtual = Convert.ToInt32(reader["versao"]); roteiro.Nome = reader["nome"].ToString(); roteiro.Padrao = ListaCredenciadoBus.RoteiroPadrao.Exists(x => x.Id == roteiro.Id); if (reader["finalidade"] != null && !Convert.IsDBNull(reader["finalidade"])) { roteiro.Finalidade = Convert.ToInt32(reader["finalidade"]); } if (reader["setor_id"] != null && !Convert.IsDBNull(reader["setor_id"])) { roteiro.Setor = Convert.ToInt32(reader["setor_id"]); roteiro.SetorNome = reader["setor_texto"].ToString(); } roteiro.Situacao = Convert.ToInt32(reader["situacao"]); roteiro.Observacoes = reader["observacoes"].ToString(); roteiro.DataCriacao = Convert.ToDateTime(reader["data_criacao"]); } reader.Close(); } #endregion #region Itens do roteiro comando = bancoDeDados.CriarComando(@"select tri.id, i.ordem, tri.nome, tri.condicionante, tri.procedimento, tri.tipo, lrip.texto tipo_texto, tri.tid from {0}tab_roteiro_itens i, {0}tab_roteiro_item tri, {0}lov_roteiro_item_tipo lrip where i.item = tri.id and tri.tipo = lrip.id and i.roteiro = :roteiro order by i.ordem" , EsquemaBanco); comando.AdicionarParametroEntrada("roteiro", roteiro.Id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { Item item; while (reader.Read()) { item = new Item(); item.Id = Convert.ToInt32(reader["id"]); item.Nome = reader["nome"].ToString(); item.Condicionante = reader["condicionante"].ToString(); item.Ordem = Convert.ToInt32(reader["ordem"]); item.ProcedimentoAnalise = reader["procedimento"].ToString(); if (reader["tipo"] != null && !Convert.IsDBNull(reader["tipo"])) { item.Tipo = Convert.ToInt32(reader["tipo"]); item.TipoTexto = reader["tipo_texto"].ToString(); } item.Tid = reader["tid"].ToString(); roteiro.Itens.Add(item); } reader.Close(); } #endregion #region Modelos de Títulos comando = bancoDeDados.CriarComando(@"select rm.id, rm.roteiro, rm.modelo, m.nome modelo_nome, rm.tid from {0}tab_roteiro_modelos rm, {0}tab_titulo_modelo m where rm.roteiro = :roteiro and rm.modelo = m.id" , EsquemaBanco); comando.AdicionarParametroEntrada("roteiro", roteiro.Id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { TituloModeloLst item; while (reader.Read()) { item = new TituloModeloLst(); item.Id = Convert.ToInt32(reader["modelo"]); item.IdRelacionamento = Convert.ToInt32(reader["id"]); item.Texto = reader["modelo_nome"].ToString(); roteiro.Modelos.Add(item); } reader.Close(); } #endregion #region Atividades comando = bancoDeDados.CriarComando(@"select rm.id, rm.roteiro, rm.atividade, a.atividade atividade_nome, rm.tid from {0}tab_roteiro_atividades rm, {0}tab_atividade a where rm.roteiro = :roteiro and rm.atividade = a.id" , EsquemaBanco); comando.AdicionarParametroEntrada("roteiro", roteiro.Id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { AtividadeSolicitada item; while (reader.Read()) { item = new AtividadeSolicitada(); item.Id = Convert.ToInt32(reader["atividade"]); item.IdRelacionamento = Convert.ToInt32(reader["id"]); item.Texto = reader["atividade_nome"].ToString(); roteiro.Atividades.Add(item); } reader.Close(); } #endregion #region Arquivos do roteiro comando = bancoDeDados.CriarComando(@"select a.id, a.ordem, a.descricao, b.nome, b.extensao, b.id arquivo_id, b.caminho, a.tid from {0}tab_roteiro_arquivo a, {0}tab_arquivo b where a.arquivo = b.id and a.roteiro = :roteiro order by a.ordem" , EsquemaBanco); comando.AdicionarParametroEntrada("roteiro", roteiro.Id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { Anexo item; while (reader.Read()) { item = new Anexo(); item.Id = Convert.ToInt32(reader["id"]); item.Ordem = Convert.ToInt32(reader["ordem"]); item.Descricao = reader["descricao"].ToString(); item.Arquivo.Id = Convert.ToInt32(reader["arquivo_id"]); item.Arquivo.Caminho = reader["caminho"].ToString(); item.Arquivo.Nome = reader["nome"].ToString(); item.Arquivo.Extensao = reader["extensao"].ToString(); item.Tid = reader["tid"].ToString(); roteiro.Anexos.Add(item); } reader.Close(); } #endregion #region Palavra chave do roteiro comando = bancoDeDados.CriarComando(@"select a.id, a.chave from {0}tab_roteiro_chave a where a.roteiro = :roteiro", EsquemaBanco); comando.AdicionarParametroEntrada("roteiro", roteiro.Id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { PalavraChave palavra = null; while (reader.Read()) { palavra = new PalavraChave(); palavra.Id = Convert.ToInt32(reader["id"]); palavra.Nome = reader["chave"].ToString(); roteiro.PalavraChaves.Add(palavra); } reader.Close(); } #endregion } return(roteiro); }