Ejemplo n.º 1
0
        protected SqlConstrutor(IEntidade entidade, String tabela, String apelido = null)
        {
            this.entidade    = entidade;
            tabelaPrincipal  = tabela;
            apelidoPrincipal = String.IsNullOrEmpty(apelido)
                                   ? entidade.GetType().Name
                                   : apelido;

            listaJoins = new List <Uniao>();
            Mapeamento = MapeamentoUtils.obterMapeamento(entidade, apelidoPrincipal);
        }
Ejemplo n.º 2
0
        private String MontarHeader(IEntidade tela)
        {
            String header = "";
            Type   t      = tela.GetType();

            foreach (Entidade.Layout.Campo campo in Entidade.Layout.Mapa.Header.Campos)
            {
                header += MontarCampo(campo.TipoDados, (Object)t.GetProperty(campo.Propriedade).GetValue(tela, null), campo.Tamanho, campo.Formato);
            }

            return(header);
        }
Ejemplo n.º 3
0
        protected ISqlConstrutor adicionaUniao(TipoUniao tipoUniao, String propriedade, String tabela,
                                               String apelido = null, String condicionalAdicional = null)
        {
            Type         tipo = entidade.obterTiposMapeado()[propriedade];
            PropertyInfo prop = entidade.GetType().GetProperty(propriedade);

            if (prop == null)
            {
                throw new Exception(String.Format("Propriedade {0} da entidade {1} não possui a assinatura Mapear.",
                                                  propriedade, entidade.GetType().FullName));
            }

            Uniao u = new Uniao(this, propriedade, tipo, tabela, apelido)
            {
                TipoUniao         = tipoUniao,
                CondicaoAdicional = condicionalAdicional
            };

            listaJoins.Add(u);

            return(this);
        }
Ejemplo n.º 4
0
        private String MontarMensagem(IEntidade tela, Entidade.Layout.Acao layoutAcao)
        {
            String msg = "";
            Type   t   = tela.GetType();

            foreach (Entidade.Layout.Campo campo in layoutAcao.Campos)
            {
                msg += MontarCampo(campo.TipoDados, (Object)t.GetProperty(campo.Propriedade).GetValue(tela, null), campo.Tamanho, campo.Formato);
            }

            msg = msg.Length.ToString().PadLeft(5, '0') + msg;

            return(msg);
        }
Ejemplo n.º 5
0
        internal IEntidade LerMensagem(IEntidade entidade, String chaveAcao, String msg)
        {
            Entidade.Layout.Acao layoutAcao;
            pos = 0;

            layoutAcao = Buscar(entidade.GetType().Name, chaveAcao, Tipo.Retorno);

            if (layoutAcao != null)
            {
                entidade = DesmontarHeader(entidade, msg);
                entidade = DesmontarMensagem(entidade, layoutAcao, msg);
            }

            return(entidade);
        }
Ejemplo n.º 6
0
        protected Dictionary <String, DbParameter> criarParamatros(IEntidade entidade)
        {
            Type tipo = entidade.GetType();

            Dictionary <String, DbParameter> param = new Dictionary <String, DbParameter>();
            Dictionary <String, Type>        tipos = entidade.obterTiposMapeado();

            foreach (String k in tipos.Keys)
            {
                PropertyInfo p = tipo.GetProperty(k, new Type[] { });
                if (p == null || p.GetCustomAttributes(typeof(Transiente), true).Length > 0)
                {
                    continue;
                }



                if (p.GetValue(entidade, null) == null)
                {
                    param.Add(k, ad.criaParametro(k, ConverteUtils.converteParaDbType(tipos[k]), DBNull.Value));
                }
                else if (tipos[k].IsEnum)
                {
                    param.Add(k, ad.criaParametro(k, DbType.Int32, (int)p.GetValue(entidade, null)));
                }
                else if (tipos[k].IsSubclassOf(typeof(AbstractEntidade)))
                {//Se for uma entidade: 1-obtem seu mapeamento de chaves, 2-Pega a primeira chave e passa para o mapeamento
                    IEntidade tmp = (IEntidade)p.GetValue(entidade);
                    Dictionary <string, Type> chv = tmp.obterTiposMapeadoChave();
                    String priChv = chv.Keys.First();
                    param.Add(k, ad.criaParametro(k, ConverteUtils.converteParaDbType(chv[priChv]), tmp[priChv]));
                }
                else if (tipos[k] == typeof(TimeSpan))
                {
                    TimeSpan ts = (TimeSpan)p.GetValue(entidade, null);
                    //DateTime data = new DateTime(1981, 1, 30, ts.Hours, ts.Minutes, ts.Seconds);
                    param.Add(k, ad.criaParametro(k, ConverteUtils.converteParaDbType(tipos[k]), ts));
                }
                else
                {
                    param.Add(k, ad.criaParametro(k, ConverteUtils.converteParaDbType(tipos[k]), p.GetValue(entidade, null)));
                }
            }

            return(param);
        }
Ejemplo n.º 7
0
        internal String GerarMensagem(IEntidade entidade, String chaveAcao)
        {
            Entidade.Layout.Acao layoutAcao;
            String msg = "";

            layoutAcao = Buscar(entidade.GetType().Name, chaveAcao, Tipo.Envio);

            if (layoutAcao != null)
            {
                ((Entidade.Header)entidade).Programa           = layoutAcao.Programa;
                ((Entidade.Header)entidade).RegistrosPorPagina = layoutAcao.RegistrosPorPagina;

                msg  = MontarHeader(entidade);
                msg += MontarMensagem(entidade, layoutAcao);
            }

            return(msg);
        }
 public EntidadeAlteradaBD(IEntidade entidade)
 {
     IdEntidade = entidade.Id;
     TipoClr = entidade.GetType().Name;
 }