Ternary Operator In Set Value Not Working ASP .NET

Wappler Version : 4.9.1
Operating System : W10
Server Model: ASP .NET
Database Type: MSSQL

{{$_POST.strWeekDay == 'Monday' ? 1 : 5}}

Putting this in a SET VALUE step returns an error: Specified cast is not valid.
If I remove the ternary operator, the output of the condition is True - which seems weird as it should be true.

Does it also tell a filename/linenumber in the stacktrace of the error?

Full trace:

{
  "ClassName": "System.InvalidCastException",
  "Message": "Specified cast is not valid.",
  "Data": null,
  "InnerException": null,
  "HelpURL": null,
  "StackTraceString": "   at DMXzone.ServerConnect.Parser.<>c__DisplayClass22_0.<Conditional>b__0() in C:\\Development\\Server Connect\\ASPNET_Source\\DMXzone Server Connect\\Parser.cs:line 208\r\n   at DMXzone.ServerConnect.Parser.ParseExpression(String expression, Scope scope) in C:\\Development\\Server Connect\\ASPNET_Source\\DMXzone Server Connect\\Parser.cs:line 119\r\n   at DMXzone.ServerConnect.Parser.Parse(JToken data, Scope scope) in C:\\Development\\Server Connect\\ASPNET_Source\\DMXzone Server Connect\\Parser.cs:line 72\r\n   at DMXzone.ServerConnect.App.Execute(JToken action) in C:\\Development\\Server Connect\\ASPNET_Source\\DMXzone Server Connect\\App.cs:line 422\r\n   at DMXzone.ServerConnect.ServerConnect.ExecuteAction(JToken action) in C:\\Development\\Server Connect\\ASPNET_Source\\DMXzone Server Connect\\ServerConnect.cs:line 238",
  "RemoteStackTraceString": null,
  "RemoteStackIndex": 0,
  "ExceptionMethod": "8\n<Conditional>b__0\nDMXzone.ServerConnect, Version=1.2.1.3, Culture=neutral, PublicKeyToken=null\nDMXzone.ServerConnect.Parser+<>c__DisplayClass22_0\nSystem.Object <Conditional>b__0()",
  "HResult": -2147467262,
  "Source": "DMXzone.ServerConnect",
  "WatsonBuckets": null
}

Try this update: DMXzone.ServerConnect.zip (56.6 KB)

Still getting the same error.

{
  "ClassName": "System.InvalidCastException",
  "Message": "Specified cast is not valid.",
  "Data": null,
  "InnerException": null,
  "HelpURL": null,
  "StackTraceString": "   at DMXzone.ServerConnect.Parser.<>c__DisplayClass22_0.<Conditional>b__0() in C:\\Development\\Server Connect\\ASPNET_Source\\DMXzone Server Connect\\Parser.cs:line 208\r\n   at DMXzone.ServerConnect.Parser.ParseExpression(String expression, Scope scope) in C:\\Development\\Server Connect\\ASPNET_Source\\DMXzone Server Connect\\Parser.cs:line 119\r\n   at DMXzone.ServerConnect.Parser.Parse(JToken data, Scope scope) in C:\\Development\\Server Connect\\ASPNET_Source\\DMXzone Server Connect\\Parser.cs:line 72\r\n   at DMXzone.ServerConnect.App.Execute(JToken action) in C:\\Development\\Server Connect\\ASPNET_Source\\DMXzone Server Connect\\App.cs:line 422\r\n   at DMXzone.ServerConnect.ServerConnect.ExecuteAction(JToken action) in C:\\Development\\Server Connect\\ASPNET_Source\\DMXzone Server Connect\\ServerConnect.cs:line 238",
  "RemoteStackTraceString": null,
  "RemoteStackIndex": 0,
  "ExceptionMethod": "8\n<Conditional>b__0\nDMXzone.ServerConnect, Version=1.2.1.3, Culture=neutral, PublicKeyToken=null\nDMXzone.ServerConnect.Parser+<>c__DisplayClass22_0\nSystem.Object <Conditional>b__0()",
  "HResult": -2147467262,
  "Source": "DMXzone.ServerConnect",
  "WatsonBuckets": null
}

Trying a different method to do an explicit cast, here the update:

DMXzone.ServerConnect.zip (56.6 KB)

I can’t reproduce the error myself, so I don’t know exactly what goes wrong and can’t test it.

The error is in the expression parser, original code was:

(bool)left() ? middle() : right()

changed it now to:

Convert.ToBoolean(left()) ? middle() : right()
1 Like

This one worked. :+1:

Fixed in Wappler 5.0.3

This topic was automatically closed after 32 hours. New replies are no longer allowed.