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();
        }
Exemplo n.º 8
0
        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;
 }
Exemplo n.º 10
0
        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);
 }
Exemplo n.º 13
0
 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);
        }
Exemplo n.º 18
0
        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;
 }
Exemplo n.º 21
0
        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);
        }