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

            return(OTipoReferenciaSaida.id > 0);
        }
        //Verificar se deve-se atualizar um registro existente ou criar um novo
        public bool salvar(TipoReferenciaSaida OTipoReferenciaSaida)
        {
            if (OTipoReferenciaSaida.id == 0)
            {
                return(this.inserir(OTipoReferenciaSaida));
            }

            return(this.atualizar(OTipoReferenciaSaida));
        }
        //Persistir o objecto e atualizar informações
        private bool atualizar(TipoReferenciaSaida OTipoReferenciaSaida)
        {
            OTipoReferenciaSaida.setDefaultUpdateValues <TipoReferenciaSaida>();

            //Localizar existentes no banco
            TipoReferenciaSaida dbTipoReferenciaSaida = this.carregar(OTipoReferenciaSaida.id);
            var TipoEntry = db.Entry(dbTipoReferenciaSaida);

            TipoEntry.CurrentValues.SetValues(OTipoReferenciaSaida);
            TipoEntry.ignoreFields <TipoReferenciaSaida>();

            db.SaveChanges();
            return(OTipoReferenciaSaida.id > 0);
        }
        public JsonMessageStatus alterarStatus(int id)
        {
            var retorno = new JsonMessageStatus();

            TipoReferenciaSaida Objeto = this.carregar(id);

            if (Objeto == null)
            {
                retorno.error   = true;
                retorno.message = NotificationMessages.invalid_register_id;
            }
            else
            {
                Objeto.ativo = (Objeto.ativo == "S" ? "N" : "S");
                db.SaveChanges();
                retorno.active  = Objeto.ativo;
                retorno.message = "Os dados foram alterados com sucesso.";
            }
            return(retorno);
        }