private void MoveNode(NodePositionMovement npm) { CoreRepository.ClearQueryCache("Nodes"); IList rootNodes = CoreRepository.GetRootNodes(ActiveNode.Site); ActiveNode.Move(rootNodes, npm); CoreRepository.FlushSession(); Context.Response.Redirect(Context.Request.RawUrl); }
private void btnDelete_Click(object sender, EventArgs e) { if (ActiveNode.Sections.Count > 0) { ShowError( "Không thể xóa nút khi có các vùng phân hệ trong nó. Hãy xóa hoặc tạm gỡ toàn bộ các vùng này trước."); } else if (ActiveNode.ChildNodes.Count > 0) { ShowError("Không thể xóa nút khi còn các nút con. Hãy xóa hết các nút con trước."); } else { try { CoreRepository.ClearQueryCache("Nodes"); bool hasParentNode = (ActiveNode.ParentNode != null); if (hasParentNode) { ActiveNode.ParentNode.ChildNodes.Remove(ActiveNode); } else { IList rootNodes = CoreRepository.GetRootNodes(ActiveNode.Site); rootNodes.Remove(ActiveNode); } CoreRepository.DeleteNode(ActiveNode); // Reset the position of the 'neighbour' nodes. if (ActiveNode.Level == 0) { ActiveNode.ReOrderNodePositions(CoreRepository.GetRootNodes(ActiveNode.Site), ActiveNode.Position); } else { ActiveNode.ReOrderNodePositions(ActiveNode.ParentNode.ChildNodes, ActiveNode.Position); } CoreRepository.FlushSession(); if (hasParentNode) { Context.Response.Redirect(String.Format("NodeEdit.aspx?NodeId={0}", ActiveNode.ParentNode.Id)); } else { Context.Response.Redirect("Default.aspx"); } } catch (Exception ex) { ShowError(ex.Message); log.Error(String.Format("Có lỗi khi xóa nút: {0}.", ActiveNode.Id), ex); } } }
private void SaveNode() { CoreRepository.ClearQueryCache("Nodes"); if (ActiveNode.Id > 0) { CoreRepository.UpdateNode(ActiveNode , chkPropagateToChildNodes.Checked , chkPropagateToSections.Checked); } else { IList rootNodes = CoreRepository.GetRootNodes(ActiveNode.Site); ActiveNode.CalculateNewPosition(rootNodes); // Add node to the parent node's ChildNodes first if (ActiveNode.ParentNode != null) { ActiveNode.ParentNode.ChildNodes.Add(ActiveNode); } CoreRepository.SaveObject(ActiveNode); Context.Response.Redirect(String.Format("NodeEdit.aspx?NodeId={0}&message=Node created sucessfully", ActiveNode.Id)); } }