public void Salvar(TituloModelo tituloModelo) { try { if (_validar.Salvar(tituloModelo)) { if (!tituloModelo.Regra(eRegra.PdfGeradoSistema)) { tituloModelo.Arquivo.Id = null; } GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); #region Arquivo if (tituloModelo.Arquivo.Id != null && tituloModelo.Arquivo.Id == 0) { ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno); tituloModelo.Arquivo = _busArquivo.Copiar(tituloModelo.Arquivo); } if (tituloModelo.Arquivo.Id == 0) { ArquivoDa _arquivoDa = new ArquivoDa(); _arquivoDa.Salvar(tituloModelo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); } #endregion tituloModelo.Regras = tituloModelo.Regras.FindAll(x => x.Valor == true); if (tituloModelo.Regra(eRegra.Renovacao)) { TituloModeloRegra regra = tituloModelo.Regras.SingleOrDefault(x => x.TipoEnum == eRegra.Renovacao); regra.Respostas.Add(new TituloModeloResposta() { Valor = tituloModelo.Id, TipoEnum = eResposta.Modelo }); } _da.Salvar(tituloModelo, bancoDeDados); bancoDeDados.Commit(); Validacao.Add(Mensagem.TituloModelo.TituloModeloEditado); } } } catch (Exception exc) { Validacao.AddErro(exc); } }
private CampoVM CarregarCampo(eRegra regra, eResposta resposta) { CampoVM campo = new CampoVM(); TituloModeloRegra tituloRegra = Modelo.Regras.SingleOrDefault(x => x.TipoEnum == regra); if (tituloRegra == null) { return(campo); } campo.Valor = (tituloRegra.Respostas.SingleOrDefault(x => x.TipoEnum == resposta) ?? new TituloModeloResposta()).Valor; campo.Id = (tituloRegra.Respostas.SingleOrDefault(x => x.TipoEnum == resposta) ?? new TituloModeloResposta()).Id; return(campo); }
internal TituloModelo Obter(int id, BancoDeDados banco = null) { TituloModelo modelo = new TituloModelo(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Título Modelo Comando comando = bancoDeDados.CriarComando(@"select m.id, m.tid, m.codigo, m.tipo, m.subtipo, m.data_criacao, m.nome, m.sigla, m.tipo_protocolo, m.arquivo, ta.nome nome_arquivo, m.situacao, m.documento, l.texto documento_texto from {0}tab_titulo_modelo m, {0}tab_arquivo ta, {0}lov_titulo_modelo_tipo_doc l where m.arquivo = ta.id(+) and m.documento = l.id(+) and m.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { modelo.Id = id; modelo.Tid = reader["tid"].ToString(); modelo.SubTipo = reader["subtipo"].ToString(); modelo.DataCriacao.Data = Convert.ToDateTime(reader["data_criacao"]); modelo.Nome = reader["nome"].ToString(); modelo.Sigla = reader["sigla"].ToString(); if (reader["situacao"] != null && !Convert.IsDBNull(reader["situacao"])) { modelo.SituacaoId = Convert.ToInt32(reader["situacao"]); } if (reader["codigo"] != null && !Convert.IsDBNull(reader["codigo"])) { modelo.Codigo = Convert.ToInt32(reader["codigo"]); } if (reader["tipo"] != null && !Convert.IsDBNull(reader["tipo"])) { modelo.Tipo = Convert.ToInt32(reader["tipo"]); } if (reader["tipo_protocolo"] != null && !Convert.IsDBNull(reader["tipo_protocolo"])) { modelo.TipoProtocolo = Convert.ToInt32(reader["tipo_protocolo"]); } if (reader["arquivo"] != null && !Convert.IsDBNull(reader["arquivo"])) { modelo.Arquivo.Id = Convert.ToInt32(reader["arquivo"]); modelo.Arquivo.Nome = reader["nome_arquivo"].ToString(); } modelo.TipoDocumento = reader.GetValue <int>("documento"); modelo.TipoDocumentoTexto = reader.GetValue <string>("documento_texto"); } reader.Close(); } #endregion #region Regras comando = bancoDeDados.CriarComando(@"select r.id, r.modelo, r.regra, r.tid from {0}tab_titulo_modelo_regras r where r.modelo = :modelo", EsquemaBanco); comando.AdicionarParametroEntrada("modelo", id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { TituloModeloRegra item; while (reader.Read()) { item = new TituloModeloRegra(); item.Id = Convert.ToInt32(reader["id"]); item.Tid = reader["tid"].ToString(); item.Valor = true; if (reader["regra"] != null && !Convert.IsDBNull(reader["regra"])) { item.Tipo = Convert.ToInt32(reader["regra"]); } #region Respostas comando = bancoDeDados.CriarComando(@"select mr.id, mr.modelo, mr.regra, mr.resposta, mr.valor, mr.tid from {0}tab_titulo_modelo_respostas mr where mr.modelo = :modelo and mr.regra = :regra" , EsquemaBanco); comando.AdicionarParametroEntrada("modelo", id, DbType.Int32); comando.AdicionarParametroEntrada("regra", item.Id, DbType.Int32); using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando)) { TituloModeloResposta itemAux; while (readerAux.Read()) { itemAux = new TituloModeloResposta(); itemAux.Id = Convert.ToInt32(readerAux["id"]); itemAux.Tid = readerAux["tid"].ToString(); if (readerAux["resposta"] != null && !Convert.IsDBNull(readerAux["resposta"])) { itemAux.Tipo = Convert.ToInt32(readerAux["resposta"]); } itemAux.Valor = readerAux["valor"]; item.Respostas.Add(itemAux); } readerAux.Close(); } #endregion modelo.Regras.Add(item); } reader.Close(); } #endregion #region Setores comando = bancoDeDados.CriarComando(@"select mr.id, mr.modelo, mr.setor, mr.hierarquia, ts.nome, mr.tid from tab_titulo_modelo_setores mr, tab_setor ts where mr.setor = ts.id and mr.modelo = :modelo", EsquemaBanco); comando.AdicionarParametroEntrada("modelo", id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { Setor item; while (reader.Read()) { item = new Setor(); item.IdRelacao = Convert.ToInt32(reader["id"]); item.Id = Convert.ToInt32(reader["setor"]); item.Nome = reader["nome"].ToString(); item.HierarquiaCabecalho = reader["hierarquia"].ToString(); modelo.Setores.Add(item); } reader.Close(); } #endregion #region Assinantes comando = bancoDeDados.CriarComando(@"select mr.id, mr.modelo, mr.setor, s.nome setor_nome, mr.tipo_assinante, la.texto tipo_assinante_texto, mr.tid from {0}tab_titulo_modelo_assinantes mr, {0}tab_setor s, {0}lov_titulo_modelo_assinante la where mr.tipo_assinante = la.id and mr.setor = s.id and mr.modelo = :modelo" , EsquemaBanco); comando.AdicionarParametroEntrada("modelo", id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { Assinante item; while (reader.Read()) { item = new Assinante(); item.Id = Convert.ToInt32(reader["id"]); if (reader["setor"] != null && !Convert.IsDBNull(reader["setor"])) { item.SetorId = Convert.ToInt32(reader["setor"]); item.SetorTexto = reader["setor_nome"].ToString(); } if (reader["tipo_assinante"] != null && !Convert.IsDBNull(reader["tipo_assinante"])) { item.TipoId = Convert.ToInt32(reader["tipo_assinante"]); item.TipoTexto = reader["tipo_assinante_texto"].ToString(); } modelo.Assinantes.Add(item); } reader.Close(); } #endregion } return(modelo); }