/// <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); }
//Salvar um novo registro ou atualizar um existente public RedeBinaria salvar(NovoMembroRede ONovoMembro) { var ORedeBinaria = this.db.RedeBinaria.FirstOrDefault(x => x.idMembro == ONovoMembro.idMembroPai); if (ORedeBinaria == null) { ORedeBinaria = new RedeBinaria(); ORedeBinaria.idMembro = ONovoMembro.idMembroPai; if (ONovoMembro.flagEsquerda == true) { ORedeBinaria.idMembroEsquerda = ONovoMembro.idMembro; ORedeBinaria.dtCadastroEsquerda = DateTime.Now; } else { ORedeBinaria.idMembroDireita = ONovoMembro.idMembro; ORedeBinaria.dtCadastroDireita = DateTime.Now; } } if (ORedeBinaria.id > 0) { this.atualizar(ORedeBinaria); } if (ORedeBinaria.id == 0) { this.inserir(ORedeBinaria); } return(ORedeBinaria); }