/// <summary> /// Adds the or update state data. /// </summary> /// <param name="targetData">The target data.</param> /// <returns></returns> internal PropertyCollection addOrUpdateStateData(PropertyCollection targetData = null) { if (targetData == null) { targetData = data; } targetData.setSystemStatus(this.getLastLine(), !targetData.containsKey(templateFieldBasic.sys_uid)); targetData.addStringToMultikeys(directoryScope.FullName, false, templateFieldBasic.path_dir); targetData.addStringToMultikeys(directoryRoot.FullName, true, templateFieldBasic.path_output); //targetData.addStringToMultikeys(render, false, templateFieldBasic.path_format); if (script != null) { if (!script.flags.HasFlag(docScriptFlags.enableLocalCollection)) { IMetaContentNested mc = scope as IMetaContentNested; var changes = scope_monitor.getState(true); if (changes.IsTargetChanged) { if (changes.IsParentChanged) { var tmpData = mc.AppendDataFields(); targetData.AddRange(tmpData, false); } else { mc.AppendDataFields(targetData); } } } } return(targetData); }
//public String makeFolderSignature() public void scopeOutOperation(IRenderExecutionContext context, IMetaContentNested oldScope) { if (context.directoryScope.FullName == context.directoryRoot.FullName) { } else { builderForMarkdown dirReadMe = new builderForMarkdown(); dirReadMe.AppendHorizontalLine(); dirReadMe.AppendHeading("Directory for [" + oldScope.name + "]", 3); dirReadMe.AppendLine("Report: {{{test_caption}}}, {{{sys_time}}}, {{{sys_date}}}"); dirReadMe.AppendLine("> Open 'index.html' for report content"); dirReadMe.AppendHorizontalLine(); dirReadMe.AppendHeading("Report element description", 2); dirReadMe.AppendPair("Element class type", oldScope.GetType().Name, true, " \t\t = \t"); dirReadMe.AppendPair("Element logical level", oldScope.elementLevel.ToString(), true, " \t\t = \t"); dirReadMe.AppendPair("Element logical path", oldScope.path, true, " \t\t = \t"); //.elementLevel.ToString()); dirReadMe.AppendPair("Element isRoot", oldScope.isThisRoot, true, " \t\t = \t"); //.elementLevel.ToString()); dirReadMe.AppendHorizontalLine(); dirReadMe.AppendHeading("Element data dump", 2); var pc = oldScope.AppendDataFields(null); dirReadMe.AppendPairs(pc, false, " \t\t = \t"); dirReadMe.AppendHorizontalLine(); dirReadMe.AppendHeading("Contextual data contextual dump", 2); var p2c = context.data; dirReadMe.AppendPairs(p2c, false, " \t\t = \t"); dirReadMe.AppendHorizontalLine(); dirReadMe.AppendLine("File created: {{{sys_time}}}, {{{sys_date}}}, {{{meta_year}}}"); dirReadMe.AppendLine("By: {{{meta_softwareName}}}"); dirReadMe.AppendLine("{{{meta_copyright}}}, {{{meta_author}}}, {{{meta_organization}}}"); dirReadMe.AppendHorizontalLine(); dirReadMe.AppendLine("File system path: " + context.directoryScope.FullName); dirReadMe.AppendLine("Report root path: " + context.directoryRoot.FullName); string content = dirReadMe.ContentToString(true, reportOutputFormatName.markdown); content = content.applyToContent(pc); content = content.applyToContent(p2c); string path = context.directoryScope.FullName.add("readme.md", "\\"); content.saveStringToFile(path, getWritableFileMode.overwrite, Encoding.UTF8); // leaving the directory context.directoryScope = context.directoryScope.Parent; } setRelPath(context); }