예제 #1
0
        protected DTOPessoa ConverteEntidadeParaDTO(Pessoa entidade)
        {
            DTOPessoa dto = null;

            if (entidade != null)
            {
                dto              = new DTOPessoa();
                dto.ID           = entidade.Id;
                dto.DtNascimento = entidade.DtNascimento;
                dto.Nome         = entidade.Nome;
                dto.Status       = entidade.Status;

                foreach (Documento doc in entidade.Documentos)
                {
                    DTODocumento dtoDoc = new DTODocumento();
                    dtoDoc.ValorDocumento = doc.ToStringFormatado();
                    dtoDoc.TipoDocumento  = doc.TipoDocumento;

                    dto.AdicionarDocumento(dtoDoc);
                }

                foreach (Telefone tel in entidade.Telefones)
                {
                    DTOTelefone dtoTel = new DTOTelefone();
                    dtoTel.Telefone = tel.ToStringFormatado();
                    dtoTel.Tipo     = tel.Tipo;

                    dto.AdicionarTelefone(dtoTel);
                }

                foreach (Endereco end in entidade.Enderecos)
                {
                    DTOEndereco dtoEnd = new DTOEndereco();
                    dtoEnd.Logradouro   = end.Logradouro;
                    dtoEnd.Numero       = end.Numero;
                    dtoEnd.TipoEndereco = end.TipoEndereco;
                    dtoEnd.Cep          = end.Cep;
                    DTOCidade dtoCidade = _fachadaCidade.Obter(end.Cidade.Id);
                    dtoEnd.Cidade = dtoCidade;

                    dto.AdicionarEndereco(dtoEnd);
                }
            }

            return(dto);
        }
예제 #2
0
        public void Gravar()
        {
            DTOPessoa dto = new DTOPessoa();

            dto.ID           = this._visao.GetID();
            dto.Nome         = this._visao.GetNome();
            dto.DtNascimento = this._visao.GetDtFundacao();

            IList <String> TiposInválidos = new List <String>();

            for (int i = 0; i < this._visao.GetTotalDeDocumentosDoGrid(); i++)
            {
                DTODocumento dtoDoc = new DTODocumento();
                dtoDoc.ValorDocumento = this._visao.GetValorDocumentoDoGrid(i);

                try
                {
                    dtoDoc.TipoDocumento = NomeTipoDocumento.ObtemTipo(this._visao.GetTipoDocumentoDoGrid(i));
                }
                catch (ExcecaoParametroInvalido)
                {
                    TiposInválidos.Add("Informe um tipo válido para o Documento número " + (i + 1).ToString());
                }

                dto.AdicionarDocumento(dtoDoc);
            }

            for (int i = 0; i < this._visao.GetTotalDeEnderecosDoGrid(); i++)
            {
                DTOEndereco dtoEnd = new DTOEndereco();
                dtoEnd.Logradouro  = this._visao.GetLogradouroDoGrid(i);
                dtoEnd.Numero      = this._visao.GetNumeroDoGrid(i);
                dtoEnd.Cep         = this._visao.GetCEPDoGrid(i);
                dtoEnd.Cidade.ID   = this._visao.GetIDCidadeDoGrid(i);
                dtoEnd.Cidade.Nome = this._visao.GetCidadeDoGrid(i);

                try
                {
                    dtoEnd.TipoEndereco = NomeTipoEndereco.ObtemTipo(this._visao.GetTipoEnderecoDoGrid(i));
                }
                catch (ExcecaoParametroInvalido)
                {
                    TiposInválidos.Add("Informe um tipo válido para o endereço " + (i + 1).ToString());
                }

                dto.AdicionarEndereco(dtoEnd);
            }

            for (int i = 0; i < this._visao.GetTotalDeTelefonesDoGrid(); i++)
            {
                DTOTelefone dtoTel = new DTOTelefone();
                dtoTel.Telefone = this._visao.GetTelefoneDoGrid(i);

                try
                {
                    dtoTel.Tipo = NomeTipoTelefone.ObtemTipo(this._visao.GetTipoTelefoneDoGrid(i));
                }
                catch (ExcecaoParametroInvalido)
                {
                    TiposInválidos.Add("Informe um tipo válido para o telefone " + (i + 1).ToString());
                }

                dto.AdicionarTelefone(dtoTel);
            }

            if (TiposInválidos.Count.CompareTo(0) != 0)
            {
                string ErrosTiposInvalidos = string.Join("\n", TiposInválidos.ToArray());
                this._visaoPadrao.ExibirErro(ErrosTiposInvalidos);
                return;
            }

            try
            {
                if (this._fachada.Gravar(dto))
                {
                    this._visaoPadrao.Avisar("Empresa gravada com sucesso!");
                    this._visao.VoltarParaTelaAnterior();
                }
            }

            #region Exceções geradas pela classe Pessoa
            #region ExcecaoParametroInvalido
            catch (ExcecaoParametroInvalido ex)
            {
                // Pessoa
                if (ex.Message.Contains("Pessoa"))
                {
                    if (ex.Message.Contains("Nome"))
                    {
                        this._visaoPadrao.ExibirErro("Informe uma razão social válida!", "edtRazaoSocial");
                        this._visao.MandarFocoNoNome();
                    }
                    else if (ex.Message.Contains("DtAniversario"))
                    {
                        this._visaoPadrao.ExibirErro("Informe uma data de fundação válida", "edtDtFundacao");
                        this._visao.MandarFocoNaDtFundacao();
                    }
                }

                // Endereço
                else if (ex.Message.Contains("Endereco"))
                {
                    if (ex.Message.Contains("Logradouro"))
                    {
                        this._visaoPadrao.ExibirErro("Informe o logradouro para todos os endereços");
                    }

                    else if (ex.Message.Contains("Numero"))
                    {
                        this._visaoPadrao.ExibirErro("Informe o número para todos os endereços");
                    }

                    else if (ex.Message.Contains("Cep"))
                    {
                        this._visaoPadrao.ExibirErro("Informe o CEP para todos os endereços!");
                    }

                    else if (ex.Message.Contains("Cidade"))
                    {
                        this._visaoPadrao.ExibirErro("Informe a cidade para todos os endereços!");
                    }
                }

                // Telefone
                else if (ex.Message.Contains("Telefone"))
                {
                    this._visaoPadrao.ExibirErro("Informe ao menos um telefone válido (xx)xxxx-xxxx para todos os tipos de telefone adicionados!");
                }
            }
            #endregion
            #region ExcecaoDocumentoNaoPermitido
            catch (ExcecaoDocumentoNaoPermitido ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #region ExcecaoTelefoneNaoPermitido
            catch (ExcecaoTelefoneNaoPermitido ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #region ExcecaoEnderecoNaoPermitido
            catch (ExcecaoEnderecoNaoPermitido ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #region ExcecaoParametroRepetido
            catch (ExcecaoParametroRepetido ex)
            {
                if (ex.Message.Contains("Documento"))
                {
                    this._visaoPadrao.ExibirErro("Não é possível cadastrar documentos iguais. Verifique!");
                }

                if (ex.Message.Contains("Telefone"))
                {
                    this._visaoPadrao.ExibirErro("Não é possível cadastrar telefones iguais. Verifique!");
                }

                else if (ex.Message.Contains("Endereco"))
                {
                    this._visaoPadrao.ExibirErro("Não é possível cadastrar endereços iguais. Verifique!");
                }
            }
            #endregion
            #region ExcecaoTipoDocumentoDuplicado
            catch (ExcecaoTipoDocumentoDuplicado ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #endregion
            #region Exceções geradas pela class ValidadorEmpresa
            #region ExcecaoCNPJJaCadastrado
            catch (ExcecaoCNPJJaCadastrado ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #region ExcecaoCNPJNaoInformado
            catch (ExcecaoCNPJNaoInformado ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #region ExcecaoNenhumTelefoneInformado
            catch (ExcecaoNenhumTelefoneInformado ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #region ExcecaoEnderecoComercialNaoInformado
            catch (ExcecaoEnderecoComercialNaoInformado ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #endregion
        }