public static IR1Top RProjectUnit(this IR1Top r1Top, IGProjectUnit gProjectUnit, IW1Top w1Top) { r1Top.Ct?.ThrowIfCancellationRequested(); r1Top.Sb.RenderProjectUnitPreambleStringBuilder(gProjectUnit, r1Top.Indent, r1Top.Eol, r1Top.Ct); r1Top.Indent.Append(r1Top.IndentDelta); r1Top.Sb.Append(r1Top.Eol); r1Top.Sb.Append($"{r1Top.IndentDelta}{GProjectUnit.Header}{r1Top.Eol}"); if (gProjectUnit.GPropertyGroupInProjectUnits.Any()) { foreach (var kvp in gProjectUnit.GPropertyGroupInProjectUnits) { r1Top.RPropertyGroupInProjectUnit(kvp.Value); } } r1Top.Sb.Append(r1Top.Eol); if (gProjectUnit.GItemGroupInProjectUnits.Any()) { foreach (var kvp in gProjectUnit.GItemGroupInProjectUnits) { r1Top.RItemGroupInProjectUnit(kvp.Value); } } r1Top.Sb.Append(r1Top.Eol); if (gProjectUnit.GResourceUnits.Any()) { r1Top.Sb.Append($"{r1Top.Indent}<ItemGroup>{r1Top.Eol}"); foreach (var kvp in gProjectUnit.GResourceUnits) { r1Top.RResourceUnitInProjectUnit(kvp.Value); r1Top.Sb.Append(r1Top.Eol); } r1Top.Sb.Append($"{r1Top.Indent}</ItemGroup>{r1Top.Eol}"); } r1Top.Indent.ReplaceFirst(r1Top.IndentDelta, ""); r1Top.Sb.RenderProjectUnitPostambleStringBuilder(gProjectUnit, r1Top.Indent, r1Top.Eol, r1Top.Ct); r1Top.Sb.Append(r1Top.Eol); w1Top.WProjectUnit(gProjectUnit, r1Top.Sb); return(r1Top); }