Guest User

Untitled

a guest
Jun 13th, 2011
646
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.62 KB | None | 0 0
  1.  
  2.         public IQueryable<Node> GetNodes(int parentNodeId, List<int> orgIds)
  3.         {
  4.             var orgNodeIds = new List<int>();
  5.  
  6.             var docs = _db.Documents.Select(ldoc => Mapper.Map<LinqDocument, Document>(ldoc));
  7.             foreach(var doc in docs)
  8.             {
  9.                 foreach(var docOrgId in doc.DocumentOrganisations)
  10.                 {
  11.                     foreach(var orgId in orgIds)
  12.                     {
  13.                         if(docOrgId.OrganisationId == orgId)
  14.                         {
  15.                             if(!orgNodeIds.Contains(doc.NodeId))
  16.                                 orgNodeIds.Add(doc.NodeId);
  17.                         }
  18.                     }
  19.                 }
  20.              }
  21.        
  22.             var nodes = _db.Nodes.Where(x => x.ParentId == parentNodeId).Select(lnode => Mapper.Map<LinqNode, Node>(lnode));
  23.             var returnNodes = new List<Node>();
  24.            
  25.             foreach(var node in nodes)
  26.             {
  27.                 if (includeThis(orgNodeIds, node)) { returnNodes.Add(node); }
  28.                 else {
  29.                     foreach (var childNode in GetNodes(node.NodeId))
  30.                     {
  31.                         if (includeThis(orgNodeIds, childNode)) { returnNodes.Add(node); }
  32.                         else
  33.                         {
  34.                             foreach (var subChildNode in GetNodes(node.NodeId))
  35.                             {
  36.                                 if (includeThis(orgNodeIds, childNode)) { returnNodes.Add(node); }
  37.                             }
  38.                         }
  39.  
  40.                     }
  41.                 }
Advertisement
Add Comment
Please, Sign In to add comment