public References RemoveChild(Member arg) { Children.Remove(arg.Id); ChildrenIds.Remove(arg.Id); arg.Refs.ParentId = null; arg.Refs.Parent = null; return(this); }
internal References AddChild(Member arg) { Children.Add(arg.Id, arg); ChildrenIds.Add(arg.Id); arg.Refs.ParentId = Source.Id; arg.Refs.Parent = Source; return(this); }
public object Clone() { Element copy = MemberwiseClone() as Element; copy.AttachementNames = AttachementNames.Clone() as string[]; copy.ChildrenIds = ChildrenIds.Clone() as string[]; copy.Fields = Fields.ToDictionary(entry => entry.Key, entry => new List <string>(entry.Value)); copy.Id = Id.Clone() as string; copy.Class = Class.Clone() as string; return(copy); }
private void ParseRelations(HtmlNode postNode) { var childrenNodes = postNode.SelectNodes(@"//div[@id='has-children-relationship-preview']//article"); if (childrenNodes != null) { foreach (var child in childrenNodes) { var childId = int.Parse(child.Attributes["id"].Value.Substring(5)); if (childId == PostId) { continue; } var url = child.SelectSingleNode("*//img").Attributes["src"].Value; var md5 = new Regex("[a-fA-F0-9]{32}").Match(url).Value; ChildrenIds.Add($"{childId}:{md5}"); } } var parentNodes = postNode.SelectNodes(@"//div[@id='has-parent-relationship-preview']//article"); if (parentNodes != null) { var parent = parentNodes[0]; var parentId = int.Parse(parent.Attributes["id"].Value.Substring(5)); var url = parent.SelectSingleNode("*//img").Attributes["src"].Value; var md5 = new Regex("[a-fA-F0-9]{32}").Match(url).Value; ParentId = $"{parentId}:{md5}"; } }