public string CriarScriptConsultaRelacionamentoAscendente(Relacionamento relacionamento, string condicao) { return(string.Concat("asc|", relacionamento.Dicionario.Nome, "|", ConsultarCamposEstrangeirosDoRelacionamento(relacionamento), "|", condicao)); }
public void SeCriarScriptConsultaRelacionamentoDescendenteDeveGerarUmScriptSqlCorretamente() { var queryBuilder = new QueryBuilder(); var dicionarioPai = new Dicionario(typeof(ObjetoDeTestes)); queryBuilder.DefinirTabela(dicionarioPai.Nome); queryBuilder.AdicionarCondicao("Codigo", (int)Operadores.Igual, 1); var scriptConsultaDoPai = queryBuilder.GerarScript(dicionarioPai); var dicionarioFilho = new Dicionario(typeof(FilhoDoObjetoDeTestes)); var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(dicionarioFilho.ConsultarPorCampo("Pai").Propriedade); var relacionamentoBuilder = new RelacionamentoBuilder(); var relacionamento = new Relacionamento(TiposRelacionamento.Descendente, dicionarioFilho, chaveEstrangeira); relacionamentoBuilder.CriarScriptConsultaRelacionamentoDescendente(relacionamento, scriptConsultaDoPai, dicionarioPai.ConsultarCamposChave()) .Should() .Be("with[d]as(" + "select[Codigo],[CodigoNulo],[Nome],[Duplo],[DuploNulo],[Decimal]," + "[DecimalNulo],[Logico],[DataHora],[DataHoraNulo] " + "from[ObjetoVirtual]" + "where([Codigo]=@_p0) " + ")" + "select[CodigoFilho],[NomeFilho],[CodigoPai]" + "from[ObjetoVirtualFilho][t]" + "where(exists(" + "select top 1 1 " + "from[d]" + "where(t.[CodigoPai]=d.[Codigo])))"); }
public string CriarScriptConsultaRelacionamentoAscendente(Relacionamento relacionamento, string condicao) { var sql = CriarScriptConsultaRelacionamentoBasico(relacionamento, condicao); var n = 0; foreach (var chave in relacionamento.Dicionario.ConsultarCamposChave()) { if (n < relacionamento.ChaveEstrangeira.Length) { sql.Append("(t.["); sql.Append(chave.AliasOuNome); sql.Append("]=d.["); sql.Append(relacionamento.ChaveEstrangeira[n]); sql.Append("])and"); } n++; } if (n == 0 || n != relacionamento.ChaveEstrangeira.Length) { throw new AQuantidadeDeCamposChaveNaLigacaoDoCampoEInvalidaException(); } sql.Length -= 3; AdicionarOrderBy(relacionamento, sql); return(sql.ToString()); }
private void GerarAtributos(StreamWriter arquivo, Relacionamento relacionamento) { arquivo.Write("\t\t[PropriedadeDeLigacaoEstrangeira(\""); arquivo.Write(relacionamento.TabelaChavePrimaria); arquivo.Write(relacionamento.Nome); arquivo.WriteLine("\")]"); }
public string CriarScriptConsultaRelacionamentoDescendente(Relacionamento relacionamento, string condicao, IEnumerable <ItemDicionario> camposChave) { return(string.Concat("desc|", relacionamento.Dicionario.Nome, "|", ConsultarCamposEstrangeirosDoRelacionamento(relacionamento), "|", condicao)); }
private void GerarPropriedade(StreamWriter arquivo, Relacionamento relacionamento) { arquivo.Write("\t\tpublic virtual ICollection<"); arquivo.Write(relacionamento.TabelaChaveEstrangeira); arquivo.Write("> "); arquivo.Write(relacionamento.TabelaChaveEstrangeira); arquivo.WriteLine("s { get; set; }"); arquivo.WriteLine(); }
public void SeQuestionarPelaPropriedadeRelacinoadaDeUmObjetoQueNaoPossuiUmaDeterminadaChaveDeveRetornarFalso() { var filho = new FilhoDoObjetoDeTestes(); var dicionario = new Dicionario(typeof(FilhoDoObjetoDeTestes)); var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(dicionario.ConsultarPorCampo("Pai").Propriedade); var relacionamento = new Relacionamento(TiposRelacionamento.Ascendente, dicionario, chaveEstrangeira); relacionamento.PossuiChaveAscendente(new object[] { 123 }, filho) .Should().BeFalse(); }
public NfeVenda(Relacionamento.Venda.Venda venda, int nfe, int cfop, int fatura, double alíquota) { data = DadosGlobais.Instância.HoraDataAtual; funcionário = Pessoa.Funcionário.FuncionárioAtual; this.fatura = (uint)fatura; this.alíquota = alíquota; this.cfop = (uint)cfop; this.nfe = (uint) nfe; this.venda = venda; }
private void AdicionarOrderBy(Relacionamento relacionamento, StringBuilder sql) { sql.Append("))order by "); foreach (var chave in relacionamento.Dicionario.ConsultarCamposChave()) { sql.Append("t.["); sql.Append(chave.AliasOuNome); sql.Append("],"); } sql.Length -= 1; }
private void AdicionarNovoRelacionamentoDescendenteNaLista(List <Relacionamento> lista, SqlDataReader reader) { var relacionamento = new Relacionamento(); relacionamento.Ordem = Convert.ToInt32(reader["KEY_SEQ"]); relacionamento.Nome = reader["FK_NAME"].ToString(); relacionamento.TabelaChavePrimaria = reader["PKTABLE_NAME"].ToString(); relacionamento.TabelaChaveEstrangeira = reader["FKTABLE_NAME"].ToString(); relacionamento.ColunaChaveEstrangeira = reader["FKCOLUMN_NAME"].ToString(); lista.Add(relacionamento); }
public void SeDefinirUmaChaveAscendenteDeUmCampoRelacionadoDevePreencherObjetoCorretamente() { var filho = new FilhoDoObjetoDeTestes(); var dicionario = new Dicionario(typeof(FilhoDoObjetoDeTestes)); var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(dicionario.ConsultarPorCampo("Pai").Propriedade); var relacionamento = new Relacionamento(TiposRelacionamento.Ascendente, dicionario, chaveEstrangeira); relacionamento.AplicarChaveAscendente(new object[] { 123 }, filho); filho.CodigoPai .Should().Be(123); }
private bool ChaveAtualFoiExcluida(Relacionamento ligacao, ICollection itens, object[] chaveDoModel) { foreach (var item in itens) { var chave = ligacao.Dicionario.ConsultarValoresDaChave(item, ligacao.ChaveEstrangeira); if (chaveDoModel.SequenceEqual(chave)) { return(false); } } return(true); }
private bool ColecaoPossuiChave(Relacionamento ligacao, IEnumerable itens, object[] chaveModel) { foreach (var item in itens) { var chaveItem = ligacao.Dicionario.ConsultarValoresDaChave(item); if (chaveModel.SequenceEqual(chaveItem)) { return(true); } } return(false); }
private static string ConsultarCamposEstrangeirosDoRelacionamento(Relacionamento relacionamento) { var campos = new StringBuilder(); foreach (var campo in relacionamento.ChaveEstrangeira) { var item = relacionamento.Dicionario.ConsultarPorPropriedade(campo); campos.Append(item.Nome); campos.Append(","); } campos.Length -= 1; return(campos.ToString()); }
private StringBuilder CriarScriptConsultaRelacionamentoBasico(Relacionamento relacionamento, string condicao) { var sql = new StringBuilder(); sql.Append("select"); foreach (var item in relacionamento.Dicionario.Itens) { sql.Append("["); sql.Append(item.AliasOuNome); sql.Append("],"); } sql.Length -= 1; sql.Append("from(select"); var n = 0; foreach (var item in relacionamento.Dicionario.Itens) { sql.Append("["); sql.Append(item.Nome); sql.Append("]"); if (!string.IsNullOrEmpty(item.Alias)) { sql.Append("as["); sql.Append(item.Alias); sql.Append("]"); } sql.Append(","); n++; } if (n == 0) { throw new TabelaNaoPossuiInformacoesDeCamposDaTabelaException(relacionamento.Dicionario.Nome); } sql.Length -= 1; sql.Append("from["); sql.Append(relacionamento.Dicionario.Nome); sql.Append("]"); sql.Append(")[t]where(exists(select top 1 1 from("); var orderBy = condicao.IndexOf("order by", StringComparison.InvariantCultureIgnoreCase); if (orderBy > 0) { sql.Append(condicao.Substring(0, orderBy)); } else { sql.Append(condicao); } sql.Append(")[d]where"); return(sql); }
public void SeQuestionarPelaPropriedadeRelacionadaComDeterminadoValorPreenchidoDeveRetornarVerdadeiro() { var filho = new FilhoDoObjetoDeTestes() { CodigoPai = 123 }; var dicionario = new Dicionario(typeof(FilhoDoObjetoDeTestes)); var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(dicionario.ConsultarPorCampo("Pai").Propriedade); var relacionamento = new Relacionamento(TiposRelacionamento.Ascendente, dicionario, chaveEstrangeira); relacionamento.PossuiChaveAscendente(new object[] { 123 }, filho) .Should().BeTrue(); }
private StringBuilder CriarScriptConsultaRelacionamentoBasico(Relacionamento relacionamento, string condicao) { var sql = new StringBuilder(); sql.Append(string.Concat("with[d]as(", condicao, ")")); sql.Append("select"); foreach (var item in relacionamento.Dicionario.Itens) { var alias = (string.IsNullOrEmpty(item.Alias)) ? string.Empty : string.Concat("as[", item.Alias, "]"); sql.Append(string.Concat("[", item.Nome, "]", alias, ",")); } sql.Length -= 1; sql.Append(string.Concat("from[", relacionamento.Dicionario.Nome, "][t]where(exists(select top 1 1 from[d]where")); return(sql); }
public bool Salvar(RelacionamentoDTO dto) { if (dto == null) { throw new ArgumentNullException("dto"); } bool novoItem = false; var relacionamento = relacionamentoRepository.ObterPeloId(dto.Id); if (relacionamento == null) { relacionamento = new Relacionamento(); novoItem = true; } relacionamento.Descricao = dto.Descricao; relacionamento.Automatico = dto.Automatico; if (Validator.IsValid(relacionamento, out validationErrors)) { if (novoItem) { relacionamentoRepository.Inserir(relacionamento); } else { relacionamentoRepository.Alterar(relacionamento); } relacionamentoRepository.UnitOfWork.Commit(); messageQueue.Add(Resource.Sigim.SuccessMessages.SalvoComSucesso, TypeMessage.Success); return(true); } else { messageQueue.AddRange(validationErrors, TypeMessage.Error); } return(false); }
public string CriarScriptConsultaRelacionamentoDescendente(Relacionamento relacionamento, string condicao, IEnumerable <ItemDicionario> camposChave) { var sql = CriarScriptConsultaRelacionamentoBasico(relacionamento, condicao); var n = 0; foreach (var campo in camposChave) { if (n < relacionamento.ChaveEstrangeira.Length) { sql.Append(string.Concat("(t.[", relacionamento.ChaveEstrangeira[n], "]=d.[", campo.AliasOuNome, "])and")); } n++; } if (n == 0 || n != relacionamento.ChaveEstrangeira.Length) { throw new AQuantidadeDeCamposChaveNaLigacaoDoCampoEInvalidaException(); } sql.Length -= 3; sql.Append("))"); return(sql.ToString()); }
public ItemDicionario(int id, string alias, string nome, DbType tipoBanco, Type tipoLocal, bool chave, bool obrigatorio, int tamanhoMaximo, int ordem, Incremento opcaoGeracao, object valorPadrao, bool mapeado, PropertyInfo propriedade, IList <IValidadorPropriedadeAttribute> validacoes, Relacionamento ligacao) { Id = id; Alias = (string.IsNullOrEmpty(alias)) ? null : alias; Nome = nome; TipoBanco = tipoBanco; TipoLocal = tipoLocal; Chave = chave; Obrigatorio = obrigatorio || chave; TamanhoMaximo = tamanhoMaximo; Ordem = ordem; OpcaoGeracao = opcaoGeracao; ValorPadrao = valorPadrao; Mapeado = mapeado; Propriedade = propriedade; Validacoes = validacoes; Ligacao = ligacao; }
private void SalvarRelacionamentoNoEMS(string action, string xmlIntegrationLog, DynamicEntity entity) { Guid relacionamentoId = Guid.Empty; if (entity.Properties.Contains("new_relacionamentoid")) { relacionamentoId = ((Key)entity.Properties["new_relacionamentoid"]).Value; } IntegrarService integrarRelacionamento = new IntegrarService(); MensagemDeRetornoEMS mensagemRetorno = new MensagemDeRetornoEMS(); mensagemRetorno = integrarRelacionamento.Integrar("new_relacionamento", action, xmlIntegrationLog, relacionamentoId); Relacionamento relacionamento = new Relacionamento(); relacionamento.Id = relacionamentoId; relacionamento.DescricaoDaMensagemDeIntegracao = mensagemRetorno.Descricao; relacionamento.CodigoEms = mensagemRetorno.CodigoEMS; relacionamento.StatusDaIntegracao = mensagemRetorno.StatusIntegracao; relacionamento.ExportaERP = ""; DomainService.RepositoryCliente.AtualizarRelacionamento(relacionamento); }