Exemplo n.º 1
0
        public static bool Save
        (
            END_UnidadeFederativa entity
            , Guid pai_idAntigo
            , CoreLibrary.Data.Common.TalkDBTransaction banco
        )
        {
            END_UnidadeFederativaDAO dal = new END_UnidadeFederativaDAO();

            if (banco == null)
            {
                dal._Banco.Open(IsolationLevel.ReadCommitted);
            }
            else
            {
                dal._Banco = banco;
            }

            try
            {
                if (entity.Validate())
                {
                    if (VerificaUnidadeFederativaExistentePais(entity))
                    {
                        throw new DuplicateNameException("Já existe uma unidade federativa cadastrada com este nome nesse país.");
                    }

                    if (entity.IsNew)
                    {
                        //Incrementa um na integridade do pais
                        END_PaisDAO paiDAL = new END_PaisDAO {
                            _Banco = dal._Banco
                        };
                        paiDAL.Update_IncrementaIntegridade(entity.pai_id);
                    }
                    else
                    {
                        if (pai_idAntigo != entity.pai_id)
                        {
                            END_PaisDAO paiDAL = new END_PaisDAO {
                                _Banco = dal._Banco
                            };

                            //Decrementa um na integridade do pais anterior
                            paiDAL.Update_DecrementaIntegridade(pai_idAntigo);

                            //Incrementa um na integridade do pais atual
                            paiDAL.Update_IncrementaIntegridade(entity.pai_id);
                        }
                    }

                    dal.Salvar(entity);
                }
                else
                {
                    throw new CoreLibrary.Validation.Exceptions.ValidationException(entity.PropertiesErrorList[0].Message);
                }

                return(true);
            }
            catch (Exception err)
            {
                if (banco == null)
                {
                    dal._Banco.Close(err);
                }
                throw;
            }
            finally
            {
                if (banco == null)
                {
                    dal._Banco.Close();
                }
            }
        }
Exemplo n.º 2
0
        public static bool Save
        (
            END_Cidade entity
            , Guid pai_idAntigo
            , Guid unf_idAntigo
            , CoreLibrary.Data.Common.TalkDBTransaction banco
        )
        {
            END_CidadeDAO dal = new END_CidadeDAO();

            if (banco == null)
            {
                dal._Banco.Open(IsolationLevel.ReadCommitted);
            }
            else
            {
                dal._Banco = banco;
            }

            try
            {
                if (entity.Validate())
                {
                    if (new Guid(SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.PAIS_PADRAO_BRASIL)) == entity.pai_id)
                    {
                        if (entity.unf_id == Guid.Empty)
                        {
                            throw new ArgumentException("Estado é obrigatório para este país.");
                        }

                        if (VerificaCidadeExistentePaisEstado(entity))
                        {
                            throw new DuplicateNameException("Já existe uma cidade cadastrada com este nome nesse país e estado.");
                        }
                    }
                    else
                    {
                        if (VerificaCidadeExistentePais(entity))
                        {
                            throw new DuplicateNameException("Já existe uma cidade cadastrada com este nome nesse país.");
                        }
                    }

                    if (entity.IsNew)
                    {
                        //Incrementa um na integridade do pais
                        END_PaisDAO paiDAL = new END_PaisDAO {
                            _Banco = dal._Banco
                        };
                        paiDAL.Update_IncrementaIntegridade(entity.pai_id);

                        //Incrementa um na integridade do estado (se existir)
                        if (entity.unf_id != Guid.Empty)
                        {
                            END_UnidadeFederativaDAO unfDAL = new END_UnidadeFederativaDAO {
                                _Banco = dal._Banco
                            };
                            unfDAL.Update_IncrementaIntegridade(entity.unf_id);
                        }
                    }
                    else
                    {
                        if (pai_idAntigo != entity.pai_id)
                        {
                            END_PaisDAO paiDAL = new END_PaisDAO {
                                _Banco = dal._Banco
                            };

                            //Decrementa um na integridade do pais anterior
                            paiDAL.Update_DecrementaIntegridade(pai_idAntigo);

                            //Incrementa um na integridade do pais atual
                            paiDAL.Update_IncrementaIntegridade(entity.pai_id);
                        }

                        if (unf_idAntigo != entity.unf_id)
                        {
                            END_UnidadeFederativaDAO unfDAL = new END_UnidadeFederativaDAO {
                                _Banco = dal._Banco
                            };

                            //Decrementa um na integridade do estado anterior (se existia)
                            if (unf_idAntigo != Guid.Empty)
                            {
                                unfDAL.Update_DecrementaIntegridade(unf_idAntigo);
                            }

                            //Incrementa um na integridade do estado atual (se existir)
                            if (entity.unf_id != Guid.Empty)
                            {
                                unfDAL.Update_IncrementaIntegridade(entity.unf_id);
                            }
                        }
                    }

                    dal.Salvar(entity);
                }
                else
                {
                    throw new CoreLibrary.Validation.Exceptions.ValidationException(entity.PropertiesErrorList[0].Message);
                }

                return(true);
            }
            catch (Exception err)
            {
                if (banco == null)
                {
                    dal._Banco.Close(err);
                }
                throw;
            }
            finally
            {
                if (banco == null)
                {
                    dal._Banco.Close();
                }
            }
        }