//Persistir o objecto e salvar na base de dados
        private bool inserir(CategoriaTitulo OCategoriaTitulo)
        {
            OCategoriaTitulo.setDefaultInsertValues <CategoriaTitulo>();
            db.CategoriaTitulo.Add(OCategoriaTitulo);
            db.SaveChanges();

            return(OCategoriaTitulo.id > 0);
        }
        public ActionResult editar(int?id)
        {
            CategoriaTituloForm ViewModel        = new CategoriaTituloForm();
            CategoriaTitulo     OCategoriaTitulo = this.OCategoriaTituloBL.carregar(UtilNumber.toInt32(id)) ?? new CategoriaTitulo();

            ViewModel.CategoriaTitulo = OCategoriaTitulo;

            return(View(ViewModel));
        }
        //Persistir o objecto e atualizar informações
        private bool atualizar(CategoriaTitulo OCategoriaTitulo)
        {
            OCategoriaTitulo.setDefaultUpdateValues <CategoriaTitulo>();

            //Localizar existentes no banco
            CategoriaTitulo dbCategoriaTitulo = this.carregar(OCategoriaTitulo.id);

            if (dbCategoriaTitulo == null)
            {
                return(false);
            }

            var TipoEntry = db.Entry(dbCategoriaTitulo);

            TipoEntry.CurrentValues.SetValues(OCategoriaTitulo);
            TipoEntry.ignoreFields <CategoriaTitulo>();

            db.SaveChanges();
            return(OCategoriaTitulo.id > 0);
        }
        //Verificar se deve-se atualizar um registro existente ou criar um novo
        public bool salvar(CategoriaTitulo OTipoProduto)
        {
            OTipoProduto.MacroConta = null;

            var flagSucesso = false;

            if (OTipoProduto.id == 0)
            {
                flagSucesso = this.inserir(OTipoProduto);
            }

            flagSucesso = this.atualizar(OTipoProduto);

            if (flagSucesso)
            {
                CacheService.getInstance.remover(keyCache);
            }

            return(flagSucesso);
        }