Skip to content

Commit

Permalink
Model variable access must work in procedures as well.
Browse files Browse the repository at this point in the history
  • Loading branch information
JMS-1 committed Oct 14, 2024
1 parent ded0d98 commit 318ad74
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
4 changes: 3 additions & 1 deletion Library/Extensions/ReadFromModel.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Collections;
using System.Reflection;
using BlocklyNet.Core.Blocks;
using BlocklyNet.Core.Blocks.Lists;
using BlocklyNet.Core.Model;
using BlocklyNet.Extensions.Builder;
Expand Down Expand Up @@ -67,7 +68,8 @@ public class ReadFromModel : Block
/// <inheritdoc/>
public override async Task<object?> EvaluateAsync(Context context)
{
var data = context.Variables[Fields["VAR"]];
var varName = Fields["VAR"];
var data = context.Variables.TryGetValue(varName, out var local) ? local : context.GetRootContext().Variables[varName];
var path = await Values.EvaluateAsync<string>("PATH", context) ?? "";
var rawIndexes = await Values.EvaluateAsync<IEnumerable>("INDEXES", context, false);
var indexes = rawIndexes?.Cast<object>().ToArray() ?? [];
Expand Down
4 changes: 3 additions & 1 deletion Library/Extensions/UpdateModel.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Collections;
using System.Reflection;
using BlocklyNet.Core.Blocks;
using BlocklyNet.Core.Blocks.Lists;
using BlocklyNet.Core.Model;
using BlocklyNet.Extensions.Builder;
Expand Down Expand Up @@ -77,7 +78,8 @@ public class UpdateModelProperty : Block
/// <inheritdoc/>
public override async Task<object?> EvaluateAsync(Context context)
{
var data = context.Variables[Fields["VAR"]];
var varName = Fields["VAR"];
var data = context.Variables.TryGetValue(varName, out var local) ? local : context.GetRootContext().Variables[varName];
var value = await Values.EvaluateAsync("VALUE", context);
var path = await Values.EvaluateAsync<string>("PATH", context) ?? "";
var rawIndexes = await Values.EvaluateAsync<IEnumerable>("INDEXES", context, false);
Expand Down

0 comments on commit 318ad74

Please sign in to comment.