@@ -142,8 +142,9 @@ public virtual Task MethodBodyExecute(object key)
142142 Dictionary < string , string > formatParameters = ReflectionHelper . ParametersFormat ( _procWorker , innerMethod ) ;
143143 setWorkerStatus ( _procWorker ) ;
144144 _procWorker . cleanup ( ) ;
145+ int originalParameterCount = outputParameters . Count ;
145146 RestProcess ( _procWorker , outputParameters ) ;
146- wrapped = GetWrappedStatus ( _procWorker , wrapped , outputParameters , outputParameters . Count ) ;
147+ wrapped = GetWrappedStatus ( _procWorker , wrapped , outputParameters , outputParameters . Count , originalParameterCount ) ;
147148 return Serialize ( outputParameters , formatParameters , wrapped ) ;
148149 }
149150 catch ( Exception e )
@@ -330,9 +331,10 @@ public virtual Task MethodUrlExecute(object key)
330331 int parCount = outputParameters . Count ;
331332 setWorkerStatus ( _procWorker ) ;
332333 _procWorker . cleanup ( ) ;
334+ int originalParameterCount = outputParameters . Count ;
333335 RestProcess ( _procWorker , outputParameters ) ;
334- bool wrapped = false ;
335- wrapped = GetWrappedStatus ( _procWorker , wrapped , outputParameters , parCount ) ;
336+ bool wrapped = true ;
337+ wrapped = GetWrappedStatus ( _procWorker , wrapped , outputParameters , parCount , originalParameterCount ) ;
336338 return Serialize ( outputParameters , formatParameters , wrapped ) ;
337339 }
338340 catch ( Exception e )
@@ -344,13 +346,14 @@ public virtual Task MethodUrlExecute(object key)
344346 Cleanup ( ) ;
345347 }
346348 }
347- bool GetWrappedStatus ( GXBaseObject worker , bool wrapped , Dictionary < string , object > outputParameters , int parCount )
349+ bool GetWrappedStatus ( GXBaseObject worker , bool defaultWrapped , Dictionary < string , object > outputParameters , int parCount , int originalParCount )
348350 {
351+ bool wrapped = defaultWrapped ;
349352 if ( worker . IsApiObject )
350353 {
351354 if ( outputParameters . Count == 1 )
352355 {
353- if ( Preferences . FlattenSingleApiOutput )
356+ if ( ( originalParCount == 1 ) || ( originalParCount > 1 && Preferences . FlattenSingleApiOutput ) )
354357 {
355358 wrapped = false ;
356359 Object v = outputParameters . First ( ) . Value ;
@@ -369,10 +372,6 @@ bool GetWrappedStatus(GXBaseObject worker, bool wrapped, Dictionary<string, obje
369372 }
370373 }
371374 }
372- else
373- {
374- wrapped = true ;
375- }
376375 }
377376 }
378377 return wrapped ;
0 commit comments