private void WritePrimitiveInvocation( string keyword, KeywordArgumentKind argumentKind, KeywordArrayKind arrayKind = KeywordArrayKind.None, string discriminatorKey = null, string discriminatorVariable = null) { _writer .WriteCommand(NewPSArmEntryCommand.KeywordName) .WriteParameter(nameof(NewPSArmEntryCommand.Key)) .WriteSpace() .WriteValue(keyword); if (discriminatorKey is not null) { _writer .WriteParameter(nameof(NewPSArmEntryCommand.DiscriminatorKey)) .WriteSpace() .WriteValue(discriminatorKey) .WriteParameter(nameof(NewPSArmEntryCommand.DiscriminatorValue)) .WriteSpace() .WriteVariable(discriminatorVariable); } switch (argumentKind) { case KeywordArgumentKind.Value: _writer .WriteParameter(nameof(NewPSArmEntryCommand.Value)) .WriteSpace() .WriteVariable(KeywordValueParameter); break; case KeywordArgumentKind.Body: _writer .WriteParameter(nameof(NewPSArmEntryCommand.Body)) .WriteSpace() .WriteVariable(KeywordBodyParameter); break; } switch (arrayKind) { case KeywordArrayKind.Entry: _writer.WriteParameter(nameof(NewPSArmEntryCommand.Array)); break; case KeywordArrayKind.NestedBody: _writer.WriteParameter(nameof(NewPSArmEntryCommand.ArrayBody)); break; } }
private void WritePrimitiveInvocation( string keyword, KeywordArgumentKind argumentKind, int arrayDepth, string discriminatorKey = null, string discriminatorVariable = null) { switch (arrayDepth) { case 0: WritePrimitiveInvocation(keyword, argumentKind, discriminatorKey: discriminatorKey, discriminatorVariable: discriminatorVariable); return; case 1: WritePrimitiveInvocation(keyword, argumentKind, KeywordArrayKind.Entry, discriminatorKey, discriminatorVariable); return; default: WritePrimitiveInvocation(keyword, KeywordArgumentKind.Body, KeywordArrayKind.NestedBody, discriminatorKey, discriminatorVariable); return; } }