Implementing YAML serialization and updated samples
This commit is contained in:
parent
ac1d528b72
commit
1c2b92deb9
|
|
@ -9,21 +9,29 @@ namespace Flowsharp.Serialization.Formatters
|
|||
{
|
||||
public class YamlTokenFormatter : ITokenFormatter
|
||||
{
|
||||
private readonly ExpandoObjectConverter expandoObjectConverter;
|
||||
private readonly Serializer serializer;
|
||||
private readonly Deserializer deserializer;
|
||||
|
||||
public YamlTokenFormatter()
|
||||
{
|
||||
expandoObjectConverter = new ExpandoObjectConverter();
|
||||
serializer = new SerializerBuilder().Build();
|
||||
deserializer = new DeserializerBuilder().Build();
|
||||
}
|
||||
|
||||
public string ToString(JToken token)
|
||||
{
|
||||
var expConverter = new ExpandoObjectConverter();
|
||||
var jsonString = token.ToString(Formatting.None);
|
||||
var expandoObject = JsonConvert.DeserializeObject<ExpandoObject>(jsonString, expConverter);
|
||||
var serializer = new SerializerBuilder().Build();
|
||||
var yaml = serializer.Serialize(expandoObject);
|
||||
|
||||
return yaml;
|
||||
var json = token.ToString(Formatting.None);
|
||||
var expandoObject = JsonConvert.DeserializeObject<ExpandoObject>(json, expandoObjectConverter);
|
||||
return serializer.Serialize(expandoObject);
|
||||
}
|
||||
|
||||
public JToken FromString(string data)
|
||||
{
|
||||
var expandoObject = deserializer.Deserialize<ExpandoObject>(data);
|
||||
var json = JsonConvert.SerializeObject(expandoObject);
|
||||
return JToken.Parse(json);
|
||||
}
|
||||
|
||||
public JToken FromString(string data) => JToken.Parse(data);
|
||||
}
|
||||
}
|
||||
|
|
@ -44,8 +44,8 @@ namespace Flowsharp.Samples.Console
|
|||
.AddSingleton<FileBasedWorkflowProgramLongRunning>();
|
||||
|
||||
var serviceProvider = services.BuildServiceProvider();
|
||||
var program = serviceProvider.GetRequiredService<AdditionWorkflowProgramLongRunning>();
|
||||
//var program = serviceProvider.GetRequiredService<FileBasedWorkflowProgramLongRunning>();
|
||||
//var program = serviceProvider.GetRequiredService<AdditionWorkflowProgramLongRunning>();
|
||||
var program = serviceProvider.GetRequiredService<FileBasedWorkflowProgramLongRunning>();
|
||||
|
||||
await program.RunAsync(CancellationToken.None);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,10 +21,10 @@ namespace Flowsharp.Samples.Console.Programs
|
|||
public async Task RunAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
var assembly = typeof(FileBasedWorkflowProgramLongRunning).Assembly;
|
||||
var resource = assembly.GetManifestResourceStream("Flowsharp.Samples.Console.SampleWorkflow.json");
|
||||
var resource = assembly.GetManifestResourceStream("Flowsharp.Samples.Console.SampleWorkflow.yaml");
|
||||
var resourceReader = new StreamReader(resource);
|
||||
var json = await resourceReader.ReadToEndAsync();
|
||||
var workflow = serializer.Deserialize(json);
|
||||
var data = await resourceReader.ReadToEndAsync();
|
||||
var workflow = serializer.Deserialize(data);
|
||||
var workflowContext = await workflowInvoker.InvokeAsync(workflow, null, cancellationToken);
|
||||
|
||||
while (workflowContext.Workflow.Status == WorkflowStatus.Halted)
|
||||
|
|
@ -34,7 +34,7 @@ namespace Flowsharp.Samples.Console.Programs
|
|||
workflowContext = await ReadAndResumeAsync(workflowContext.Workflow, "tryAgain", cancellationToken);
|
||||
}
|
||||
|
||||
System.Console.WriteLine(json);
|
||||
System.Console.WriteLine(data);
|
||||
}
|
||||
|
||||
private async Task<WorkflowExecutionContext> ReadAndResumeAsync(Workflow workflow, string argumentName, CancellationToken cancellationToken)
|
||||
|
|
|
|||
|
|
@ -26,11 +26,8 @@ activities:
|
|||
syntax: JavaScript
|
||||
expression: >-
|
||||
var x = workflow.getVariable('x');
|
||||
|
||||
var y = workflow.getVariable('y');
|
||||
|
||||
var sum = parseInt(x) + parseInt(y);
|
||||
|
||||
x + ' + ' + y + ' = ' + sum;
|
||||
- id: 6
|
||||
name: WriteLine
|
||||
|
|
|
|||
Loading…
Reference in a new issue