Esempio n. 1
0
 /// <summary>
 /// Removes given list of elements form IProjectTree
 /// </summary>
 /// <param name="tree"></param>
 /// <param name="itemsToRemove"></param>
 /// <param name="itemFilter"></param>
 /// <returns></returns>
 public static IProjectTree RemoveElementsFromTree(this IProjectTree tree,
                                                   IEnumerable <string> itemsToRemove,
                                                   Func <string, bool> itemFilter)
 {
     foreach (string file in itemsToRemove)
     {
         if (itemFilter(file))
         {
             // See if we already have this one -  we shouldn't
             var existingNode = tree.FindImmediateChildByPath(file);
             System.Diagnostics.Debug.Assert(existingNode != null);
             if (existingNode != null)
             {
                 tree = existingNode.Remove();
             }
         }
     }
     return(tree);
 }
Esempio n. 2
0
 /// <summary>
 /// Adds a givel list of elements to IProjectTree
 /// </summary>
 /// <param name="tree"></param>
 /// <param name="itemsToAdd"></param>
 /// <param name="itemFilter"></param>
 /// <param name="nodeCreator"></param>
 /// <returns></returns>
 public static IProjectTree AddElementsToTree(this IProjectTree tree,
                                              IEnumerable <string> itemsToAdd,
                                              Func <string, bool> itemFilter,
                                              Func <string, IProjectTree> nodeCreator)
 {
     foreach (string item in itemsToAdd)
     {
         if (itemFilter(item))
         {
             // Double check we don't already have this one -  we shouldn't
             var existingNode = tree.FindImmediateChildByPath(item);
             System.Diagnostics.Debug.Assert(existingNode == null);
             if (existingNode == null)
             {
                 tree = tree.Add(nodeCreator(item)).Parent;
             }
         }
     }
     return(tree);
 }