Skip to content

Commit 4b28c3e

Browse files
wrapped must be initialized in true at MethodUrlExecute.
1 parent c99f9de commit 4b28c3e

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

dotnet/src/dotnetframework/GxClasses/Services/GxRestWrapper.cs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)