コード例 #1
0
        private void MontaPessoa(DataRow linha, ref IPessoa pessoa)
        {
            if (!Information.IsDBNull(linha["desricaogrupoatividade"]))
                if (!grupoDeAtividadeDoContato.ContainsKey(UtilidadesDePersistencia.GetValor(linha, "IDCONTATO")))
                    grupoDeAtividadeDoContato.Add(UtilidadesDePersistencia.GetValor(linha, "IDCONTATO"), UtilidadesDePersistencia.GetValor(linha, "desricaogrupoatividade"));

            pessoa.Nome = UtilidadesDePersistencia.GetValor(linha, "NOME_CONTATO").Trim();

            if (!Information.IsDBNull(linha["EMAIL"]))
            {
                if(pessoa.EnderecosDeEmails == null)
                    pessoa.EnderecosDeEmails = new List<EnderecoDeEmail>();

                pessoa.EnderecosDeEmails.Add(UtilidadesDePersistencia.GetValor(linha, "EMAIL").Trim());
            }

            if (!Information.IsDBNull(linha["DOMINIO"]))
                pessoa.Site = UtilidadesDePersistencia.GetValor(linha, "DOMINIO").Trim();

            if (!Information.IsDBNull(linha["LOGRADOURO"]))
            {
                var endereco = FabricaGenerica.GetInstancia().CrieObjeto<IEndereco>();

                endereco.Logradouro = UtilidadesDePersistencia.GetValor(linha, "LOGRADOURO").Trim();

                if (!Information.IsDBNull(linha["BAIRRO"]))
                    endereco.Bairro = UtilidadesDePersistencia.GetValor(linha, "BAIRRO").Trim();

                var complemento = "";
                var numero = "S/N";

                if (!Information.IsDBNull(linha["COMPLEMENTO"]))
                    complemento = UtilidadesDePersistencia.GetValor(linha, "COMPLEMENTO").Trim();

                if (!Information.IsDBNull(linha["NUMERO"]))
                    numero = "NÚMERO " + UtilidadesDePersistencia.GetValor(linha, "NUMERO").Trim();

                endereco.Complemento = (complemento + " " + numero).Trim();

                if (!Information.IsDBNull(linha["CEP"]))
                    endereco.CEP = new CEP(UtilidadesDePersistencia.GetValorLong(linha, "CEP"));

                if (!Information.IsDBNull(linha["CIDADE"]))
                    endereco.Municipio = DescubraMunicipio(UtilidadesDePersistencia.GetValor(linha, "CIDADE"), UtilidadesDePersistencia.GetValor(linha, "SG_ESTADO"));

                if (!Information.IsDBNull(linha["descricaotipoendereco"]))
                    endereco.TipoDeEndereco = DescubraTipoDeEndereco(UtilidadesDePersistencia.GetValor(linha, "descricaotipoendereco"));
                else
                    endereco.TipoDeEndereco = DescubraTipoDeEndereco("PADRÃO");

                pessoa.AdicioneEndereco(endereco);
            }

            if (!Information.IsDBNull(linha["num_telefone"]))
            {
                var telefone = FabricaGenerica.GetInstancia().CrieObjeto<ITelefone>();

                var numero = ObtenhaApenasNumeros(UtilidadesDePersistencia.GetValor(linha, "num_telefone"));

                short DDD = 0;
                long Numero;

                if (numero.Length == 10)
                {
                    DDD = Convert.ToInt16((Strings.Mid(numero, 1, 2)));
                    Numero = Convert.ToInt64((Strings.Mid(numero, 3)));
                }
                else
                {
                    Numero = Convert.ToInt64(numero);
                }

                telefone.DDD = DDD;
                telefone.Numero = Numero;

                if (Numero.ToString().StartsWith("9"))
                    telefone.Tipo = TipoDeTelefone.Celular;
                else
                    telefone.Tipo = TipoDeTelefone.Comercial;

                pessoa.AdicioneTelefone(telefone);
            }
        }