Пример #1
0
        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"));
        }
Пример #2
0
        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);
        }