public Article Find(string ArticleTitle) { ArticleCollection scope = this; // Find while (scope != null && ArticleTitle.Contains("/")) { Article cArticle = scope.Find(ArticleTitle.Substring(0, ArticleTitle.IndexOf("/"))); if (cArticle == null) { return(null); // Done here so return null } scope = cArticle.Children; ArticleTitle = ArticleTitle.Substring(ArticleTitle.IndexOf("/") + 1); } // Find in current scope try { Article searchItem = new Article(); searchItem.Title = ArticleTitle; return(scope.Data[scope.Data.BinarySearch(searchItem, new ArticleComparator())]); } catch (Exception) { return(null); } }
/// <summary> /// Set the parent of the published article /// </summary> void children_ArticleAdded(Article PublishedArticle, ArticleCollection Repository) { PublishedArticle.parent = this; }
/// <summary> /// Clear the parent of the published article /// </summary> void children_ArticleRemoved(Article PublishedArticle, ArticleCollection Repository) { PublishedArticle.parent = null; }