//-------------------------------------- //-------------------------------------- public void NodeUpdate(ContentTransfer nodeXfer) { using (WebContentContext db = new WebContentContext()) { Node nodeDb = null; try { nodeDb = db.Nodes.Where(n => n.Id == nodeXfer.NodeId).Single(); } catch (Exception ex) { // Exception is thrown if the node does not exist. // Replace this with a call to the logger. Debug.Print(ex.Message); } if (nodeDb != null) { nodeDb.Title = nodeXfer.Title; nodeDb.Summary = nodeXfer.Summary; nodeDb.Content = nodeXfer.Content; db.SaveChanges(); } } }
//-------------------------------------- //-------------------------------------- public List <ContentTransfer> NodeTypeMostRecentNLeavesGet(string nodeType, int num) { List <ContentTransfer> nodeXferList = new List <ContentTransfer>(); using (WebContentContext db = new WebContentContext()) { List <Node> nodeList = ( from n1 in db.Nodes where n1.Path.StartsWith(nodeType) join n2 in db.Nodes on n1.Id equals n2.ParentId into join1 from n3 in join1.DefaultIfEmpty() // DefaultIfEmpty specifies outer join where n3 == null // null n3 indicates n1.Id has no child; null n3 is a leaf orderby n1.Id descending select n1 ).Take(num).ToList <Node>(); foreach (Node node in nodeList) { nodeXferList.Add(DbNodeToContentXfer(node)); } } return(nodeXferList); }
//-------------------------------------- //-------------------------------------- public ContentTransfer NodeGetByPath(string path) { ContentTransfer nodeXfer = null; using (WebContentContext db = new WebContentContext()) { Node nodeDb = null; try { nodeDb = db.Nodes.Where(n => n.Path == path).Single(); } catch (Exception ex) { // Replace this with a call to the logger. Debug.Print(ex.Message); } if (nodeDb != null) { nodeXfer = DbNodeToContentXfer(nodeDb); } } return(nodeXfer); }
//-------------------------------------- //-------------------------------------- public ContentTransfer NodeCreate(ContentTransfer nodeNew) { Node nodeDb = ContentXferToDbNode(nodeNew); using (WebContentContext db = new WebContentContext()) { db.Nodes.Add(nodeDb); db.SaveChanges(); } return(NodeGetByPath(nodeNew.Path)); }
//-------------------------------------- //-------------------------------------- //public void NodeDelete(int id) //{ //} //-------------------------------------- //-------------------------------------- public bool NodeExistsTest(string path) { bool result = false; using (WebContentContext db = new WebContentContext()) { int count = db.Nodes.Where(n => n.Path == path).Count(); if (count == 1) { result = true; } } return(result); }
//-------------------------------------- //-------------------------------------- public List <ContentTransfer> NodeChildrenGet(int id) { List <ContentTransfer> children = new List <ContentTransfer>(); using (WebContentContext db = new WebContentContext()) { List <Node> childNodes = db.Nodes.Where(n => n.ParentId == id).ToList <Node>(); foreach (Node nodeDb in childNodes) { ContentTransfer nodeXfer = DbNodeToContentXfer(nodeDb); children.Add(nodeXfer); } } return(children); }