//Persistir e atualizar um registro existente
        //Atualizar dados da Contribuicao e lista de ContribuicaoPreco
        protected virtual bool atualizar(Contribuicao OContribuicao)
        {
            //Localizar existentes no banco
            Contribuicao dbContribuicao = this.carregar(OContribuicao.id);

            //Configurar valores padrão
            OContribuicao.setDefaultUpdateValues();

            //Atualizacao da lista de preços enviados
            foreach (var ItemContribuicaoPreco in OContribuicao.listaContribuicaoPreco)
            {
                var dbContribuicaoPreco = db.ContribuicaoPreco.FirstOrDefault(e => e.id == ItemContribuicaoPreco.id);

                ItemContribuicaoPreco.TipoAssociado = null;

                if (dbContribuicaoPreco == null)
                {
                    ItemContribuicaoPreco.idContribuicao = OContribuicao.id;

                    ItemContribuicaoPreco.setDefaultInsertValues();

                    ItemContribuicaoPreco.flagSistema = "N";

                    db.ContribuicaoPreco.Add(ItemContribuicaoPreco);
                }
                else
                {
                    var ContribuicaoPrecoEntry = db.Entry(dbContribuicaoPreco);

                    ItemContribuicaoPreco.flagSistema = "N";

                    ItemContribuicaoPreco.setDefaultUpdateValues();

                    ItemContribuicaoPreco.ativo = "S";

                    ContribuicaoPrecoEntry.CurrentValues.SetValues(ItemContribuicaoPreco);

                    ContribuicaoPrecoEntry.ignoreFields(new[] { "idTipoAssociado", "idContribuicao" });
                }
            }

            //Atualizacao da Contribuição
            var ContribuicaoEntry = db.Entry(dbContribuicao);

            ContribuicaoEntry.CurrentValues.SetValues(OContribuicao);
            ContribuicaoEntry.ignoreFields(new[] { "idTipoContribuicao" });

            db.SaveChanges();
            return(OContribuicao.id > 0);
        }
        //Persistir e atualizar um registro existente
        //Atualizar dados da Contribuicao e lista de ContribuicaoPreco
        protected override bool atualizar(Contribuicao OContribuicao)
        {
            //Localizar existentes no banco
            Contribuicao dbContribuicao = this.carregar(OContribuicao.id);

            //Configurar valores padrão
            OContribuicao.setDefaultUpdateValues();

            //Atualizacao da Contribuição
            var ContribuicaoEntry = db.Entry(dbContribuicao);

            ContribuicaoEntry.CurrentValues.SetValues(OContribuicao);
            ContribuicaoEntry.ignoreFields(new[] { "idPeriodoContribuicao", "idTipoVencimento" });

            db.SaveChanges();
            return(OContribuicao.id > 0);
        }