Exemplo n.º 1
0
        /// <summary>
        /// Salvar configuracoes de Scripts e remover os registros anteriores.
        /// </summary>
        public bool salvar(ConfiguracaoMembro OConfiguracoes)
        {
            OConfiguracoes.setDefaultInsertValues();

            db.ConfiguracaoMembro.Add(OConfiguracoes);

            db.SaveChanges();

            bool flagSucesso = OConfiguracoes.id > 0;

            int?idOrganizacaoParam = OConfiguracoes.idOrganizacao;

            if (flagSucesso)
            {
                db.ConfiguracaoMembro
                .Where(x => x.dtExclusao == null && x.idMembro == OConfiguracoes.idMembro && x.id != OConfiguracoes.id)
                .Update(x => new ConfiguracaoMembro {
                    dtExclusao = DateTime.Now
                });

                CacheService.getInstance.remover(chaveCache, idOrganizacaoParam.toInt());
            }

            return(OConfiguracoes.id > 0);
        }
        /// <summary>
        ///
        /// </summary>
        private NovoMembroRede carregarNivelPai(ConfiguracaoMembro ConfiguracaoIndicador, int idIndicador)
        {
            var NivelPai = new NovoMembroRede();

            RedeBinariaBase RedeIndicador = carregarRedeBinaria(ConfiguracaoIndicador.idChaveBinaria.toByte(), idIndicador);

            if (RedeIndicador == null)
            {
                NivelPai.idMembroPai = idIndicador;

                NivelPai.flagDireita = ConfiguracaoIndicador.idChaveBinaria == ChaveBinariaConst.DIREITA;

                NivelPai.flagEsquerda = ConfiguracaoIndicador.idChaveBinaria == ChaveBinariaConst.ESQUERDA;

                return(NivelPai);
            }

            bool flagTemTodos = RedeIndicador.flagTemTodos();

            if (flagTemTodos)
            {
                int idUltimoNivel = RedeIndicador.idMembroNivel10.toInt();

                return(carregarNivelPai(ConfiguracaoIndicador, idUltimoNivel));
            }

            var listaMembrosRede = RedeIndicador.toListaMembros();

            var MembroPai = listaMembrosRede.proximoSemFilho();

            NivelPai.idMembroPai = MembroPai.id;

            NivelPai.flagDireita = RedeIndicador.flagDireita;

            NivelPai.flagEsquerda = RedeIndicador.flagEsquerda;

            return(NivelPai);
        }