/// <summary></summary> /// <param name="artifact"></param> /// <param name="tag"></param> /// <param name="indentLevel"></param> public virtual void AnalyseArtifactRecordTree(IArtifact artifact, string tag, long indentLevel) { Debug.Assert(artifact != null && tag != null && indentLevel > 0); var indentString = new string('\t', (int)indentLevel); RecordTreeStringList.Add(string.Format("{0}{1}[{2}{3}: {4}", Environment.NewLine, indentString, tag, artifact.Uid, artifact.GetArticleName(true, buf: Buf))); var containedList = artifact.GetContainedList(containerType: (ContainerType)(-1)); foreach (var containedArtifact in containedList) { AnalyseArtifactRecordTree(containedArtifact, containedArtifact.GetCarriedByContainerContainerType() == ContainerType.On ? "OA" : containedArtifact.GetCarriedByContainerContainerType() == ContainerType.Under ? "UA" : containedArtifact.GetCarriedByContainerContainerType() == ContainerType.Behind ? "BA" : "IA", indentLevel + 1); } RecordTreeStringList.Add(string.Format("{0}]", containedList.Count > 0 ? Environment.NewLine + indentString : "")); }