private void ManutencaoTablePermissao(TreeNode node, bool adiciona) { if (node.Tag is Policy) { Policy tag = (Policy)node.Tag; int i = BsPermissao.Find("IDSEGURANCA", tag.TagPai); if (i != -1) { BsPermissao.Position = i; string permissao = BsPermissao.Row["SEGURANCA"].ToString().Trim(); BsPermissao.Row["SEGURANCA"] = GetPermissao(tag.Tag.ToString(), permissao, adiciona); BsPermissao.EndEdit(); } else { if (adiciona) { string permissao = GetPermissao(tag.Tag.ToString(), string.Empty, adiciona); AddTagPai(Convert.ToInt32(tag.TagPai), permissao); } } } else { if (node.Tag == null || node.Tag == string.Empty) { foreach (TreeNode nodeFilho in node.Nodes) { ManutencaoTablePermissao(nodeFilho, adiciona); } return; } int ix = BsPermissao.Find("IDSEGURANCA", node.Tag); if (ix != -1) { BsPermissao.RemoveAt(ix); } if (adiciona) { AddTagPai(Convert.ToInt32(node.Tag), string.Empty); } foreach (TreeNode nodeFilho in node.Nodes) { ManutencaoTablePermissao(nodeFilho, adiciona); } } }
private void AddTagPai(int idSeguranca, string seguranca) { int ix = BsPermissao.Find("IDSEGURANCA", idSeguranca); if (ix != -1) { BsPermissao.RemoveAt(ix); } BsPermissao.AddNew(); BsPermissao.Row["IDUSUARIO"] = this.BsDialog.Row["IDUsuario"]; BsPermissao.Row["IDSEGURANCA"] = idSeguranca; BsPermissao.Row["SEGURANCA"] = seguranca.Trim(); BsPermissao.EndEdit(); }