\ No newline at end of file
diff --git a/src/Flowsharp.Web.Dashboard/Pages/Workflows.cshtml b/src/Flowsharp.Web.Dashboard/Pages/Workflows.cshtml
deleted file mode 100644
index 1337b3987..000000000
--- a/src/Flowsharp.Web.Dashboard/Pages/Workflows.cshtml
+++ /dev/null
@@ -1,15 +0,0 @@
-@page
-@{
- ViewBag.Title = "Index";
-}
-
-
-
Workflow 1
-
-
-
-
-
diff --git a/src/Flowsharp.Web.Dashboard/Pages/_ViewImports.cshtml b/src/Flowsharp.Web.Dashboard/Pages/_ViewImports.cshtml
deleted file mode 100644
index 5e9644439..000000000
--- a/src/Flowsharp.Web.Dashboard/Pages/_ViewImports.cshtml
+++ /dev/null
@@ -1,3 +0,0 @@
-@* @using Flowsharp.Web.Components.ViewComponents *@
-@namespace Flowsharp.Web.Dashboard.Pages
-@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
\ No newline at end of file
diff --git a/src/Flowsharp.Web.Dashboard/Pages/_ViewStart.cshtml b/src/Flowsharp.Web.Dashboard/Pages/_ViewStart.cshtml
deleted file mode 100644
index d641c67f3..000000000
--- a/src/Flowsharp.Web.Dashboard/Pages/_ViewStart.cshtml
+++ /dev/null
@@ -1,3 +0,0 @@
-@{
- Layout = "_Layout";
-}
\ No newline at end of file
diff --git a/src/Flowsharp.Web.Dashboard/Startup.cs b/src/Flowsharp.Web.Dashboard/Startup.cs
deleted file mode 100644
index 3da800a77..000000000
--- a/src/Flowsharp.Web.Dashboard/Startup.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System.Collections.Generic;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.SpaServices.Webpack;
-using Microsoft.Extensions.DependencyInjection;
-
-namespace Flowsharp.Web.Dashboard
-{
- public class Startup
- {
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddFlowsharpComponents();
- services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
- }
-
- public void Configure(IApplicationBuilder app, IHostingEnvironment env)
- {
- if (env.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
- {
- HotModuleReplacement = true,
- HotModuleReplacementClientOptions = new Dictionary { { "reload", "true" } },
- });
- }
-
- app.UseFlowsharpComponents();
- app.UseStaticFiles();
- app.UseMvc();
- }
- }
-}
\ No newline at end of file
diff --git a/src/Flowsharp.Abstractions/Activities/Activity.cs b/src/core/Flowsharp.Abstractions/Activities/Activity.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Activities/Activity.cs
rename to src/core/Flowsharp.Abstractions/Activities/Activity.cs
diff --git a/src/Flowsharp.Abstractions/Activities/IActivity.cs b/src/core/Flowsharp.Abstractions/Activities/IActivity.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Activities/IActivity.cs
rename to src/core/Flowsharp.Abstractions/Activities/IActivity.cs
diff --git a/src/Flowsharp.Abstractions/Expressions/IExpressionEvaluator.cs b/src/core/Flowsharp.Abstractions/Expressions/IExpressionEvaluator.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Expressions/IExpressionEvaluator.cs
rename to src/core/Flowsharp.Abstractions/Expressions/IExpressionEvaluator.cs
diff --git a/src/Flowsharp.Abstractions/Expressions/IWorkflowExpressionEvaluator.cs b/src/core/Flowsharp.Abstractions/Expressions/IWorkflowExpressionEvaluator.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Expressions/IWorkflowExpressionEvaluator.cs
rename to src/core/Flowsharp.Abstractions/Expressions/IWorkflowExpressionEvaluator.cs
diff --git a/src/Flowsharp.Abstractions/Expressions/WorkflowExpression.cs b/src/core/Flowsharp.Abstractions/Expressions/WorkflowExpression.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Expressions/WorkflowExpression.cs
rename to src/core/Flowsharp.Abstractions/Expressions/WorkflowExpression.cs
diff --git a/src/Flowsharp.Abstractions/Flowsharp.Abstractions.csproj b/src/core/Flowsharp.Abstractions/Flowsharp.Abstractions.csproj
similarity index 100%
rename from src/Flowsharp.Abstractions/Flowsharp.Abstractions.csproj
rename to src/core/Flowsharp.Abstractions/Flowsharp.Abstractions.csproj
diff --git a/src/Flowsharp.Abstractions/Handlers/ActivityHandlerCore.cs b/src/core/Flowsharp.Abstractions/Handlers/ActivityHandlerCore.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Handlers/ActivityHandlerCore.cs
rename to src/core/Flowsharp.Abstractions/Handlers/ActivityHandlerCore.cs
diff --git a/src/Flowsharp.Abstractions/Handlers/IActivityHandler.cs b/src/core/Flowsharp.Abstractions/Handlers/IActivityHandler.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Handlers/IActivityHandler.cs
rename to src/core/Flowsharp.Abstractions/Handlers/IActivityHandler.cs
diff --git a/src/Flowsharp.Abstractions/IActivityInvoker.cs b/src/core/Flowsharp.Abstractions/IActivityInvoker.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/IActivityInvoker.cs
rename to src/core/Flowsharp.Abstractions/IActivityInvoker.cs
diff --git a/src/Flowsharp.Abstractions/IWorkflowInvoker.cs b/src/core/Flowsharp.Abstractions/IWorkflowInvoker.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/IWorkflowInvoker.cs
rename to src/core/Flowsharp.Abstractions/IWorkflowInvoker.cs
diff --git a/src/Flowsharp.Abstractions/Models/ActivityExecutionContext.cs b/src/core/Flowsharp.Abstractions/Models/ActivityExecutionContext.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Models/ActivityExecutionContext.cs
rename to src/core/Flowsharp.Abstractions/Models/ActivityExecutionContext.cs
diff --git a/src/Flowsharp.Abstractions/Models/Connection.cs b/src/core/Flowsharp.Abstractions/Models/Connection.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Models/Connection.cs
rename to src/core/Flowsharp.Abstractions/Models/Connection.cs
diff --git a/src/Flowsharp.Abstractions/Models/Endpoint.cs b/src/core/Flowsharp.Abstractions/Models/Endpoint.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Models/Endpoint.cs
rename to src/core/Flowsharp.Abstractions/Models/Endpoint.cs
diff --git a/src/Flowsharp.Abstractions/Models/SourceEndpoint.cs b/src/core/Flowsharp.Abstractions/Models/SourceEndpoint.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Models/SourceEndpoint.cs
rename to src/core/Flowsharp.Abstractions/Models/SourceEndpoint.cs
diff --git a/src/Flowsharp.Abstractions/Models/TargetEndpoint.cs b/src/core/Flowsharp.Abstractions/Models/TargetEndpoint.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Models/TargetEndpoint.cs
rename to src/core/Flowsharp.Abstractions/Models/TargetEndpoint.cs
diff --git a/src/Flowsharp.Abstractions/Models/Variables.cs b/src/core/Flowsharp.Abstractions/Models/Variables.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Models/Variables.cs
rename to src/core/Flowsharp.Abstractions/Models/Variables.cs
diff --git a/src/Flowsharp.Abstractions/Models/Workflow.cs b/src/core/Flowsharp.Abstractions/Models/Workflow.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Models/Workflow.cs
rename to src/core/Flowsharp.Abstractions/Models/Workflow.cs
diff --git a/src/Flowsharp.Abstractions/Models/WorkflowExecutionContext.cs b/src/core/Flowsharp.Abstractions/Models/WorkflowExecutionContext.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Models/WorkflowExecutionContext.cs
rename to src/core/Flowsharp.Abstractions/Models/WorkflowExecutionContext.cs
diff --git a/src/Flowsharp.Abstractions/Models/WorkflowExecutionScope.cs b/src/core/Flowsharp.Abstractions/Models/WorkflowExecutionScope.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Models/WorkflowExecutionScope.cs
rename to src/core/Flowsharp.Abstractions/Models/WorkflowExecutionScope.cs
diff --git a/src/Flowsharp.Abstractions/Models/WorkflowStatus.cs b/src/core/Flowsharp.Abstractions/Models/WorkflowStatus.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Models/WorkflowStatus.cs
rename to src/core/Flowsharp.Abstractions/Models/WorkflowStatus.cs
diff --git a/src/Flowsharp.Abstractions/Results/ActivityExecutionResult.cs b/src/core/Flowsharp.Abstractions/Results/ActivityExecutionResult.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Results/ActivityExecutionResult.cs
rename to src/core/Flowsharp.Abstractions/Results/ActivityExecutionResult.cs
diff --git a/src/Flowsharp.Abstractions/Results/IActivityExecutionResult.cs b/src/core/Flowsharp.Abstractions/Results/IActivityExecutionResult.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Results/IActivityExecutionResult.cs
rename to src/core/Flowsharp.Abstractions/Results/IActivityExecutionResult.cs
diff --git a/src/Flowsharp.Abstractions/Results/NoopResult.cs b/src/core/Flowsharp.Abstractions/Results/NoopResult.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Results/NoopResult.cs
rename to src/core/Flowsharp.Abstractions/Results/NoopResult.cs
diff --git a/src/Flowsharp.Abstractions/Serialization/Formatters/ITokenFormatter.cs b/src/core/Flowsharp.Abstractions/Serialization/Formatters/ITokenFormatter.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Serialization/Formatters/ITokenFormatter.cs
rename to src/core/Flowsharp.Abstractions/Serialization/Formatters/ITokenFormatter.cs
diff --git a/src/Flowsharp.Abstractions/Serialization/IWorkflowSerializer.cs b/src/core/Flowsharp.Abstractions/Serialization/IWorkflowSerializer.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Serialization/IWorkflowSerializer.cs
rename to src/core/Flowsharp.Abstractions/Serialization/IWorkflowSerializer.cs
diff --git a/src/Flowsharp.Abstractions/Serialization/Tokenizers/ITokenizer.cs b/src/core/Flowsharp.Abstractions/Serialization/Tokenizers/ITokenizer.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Serialization/Tokenizers/ITokenizer.cs
rename to src/core/Flowsharp.Abstractions/Serialization/Tokenizers/ITokenizer.cs
diff --git a/src/Flowsharp.Abstractions/Serialization/Tokenizers/ITokenizerInvoker.cs b/src/core/Flowsharp.Abstractions/Serialization/Tokenizers/ITokenizerInvoker.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Serialization/Tokenizers/ITokenizerInvoker.cs
rename to src/core/Flowsharp.Abstractions/Serialization/Tokenizers/ITokenizerInvoker.cs
diff --git a/src/Flowsharp.Abstractions/Serialization/Tokenizers/IWorkflowTokenizer.cs b/src/core/Flowsharp.Abstractions/Serialization/Tokenizers/IWorkflowTokenizer.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Serialization/Tokenizers/IWorkflowTokenizer.cs
rename to src/core/Flowsharp.Abstractions/Serialization/Tokenizers/IWorkflowTokenizer.cs
diff --git a/src/Flowsharp.Abstractions/Serialization/Tokenizers/WorkflowTokenizationContext.cs b/src/core/Flowsharp.Abstractions/Serialization/Tokenizers/WorkflowTokenizationContext.cs
similarity index 100%
rename from src/Flowsharp.Abstractions/Serialization/Tokenizers/WorkflowTokenizationContext.cs
rename to src/core/Flowsharp.Abstractions/Serialization/Tokenizers/WorkflowTokenizationContext.cs
diff --git a/src/Flowsharp.Core/Activities/IfElse.cs b/src/core/Flowsharp.Core/Activities/IfElse.cs
similarity index 100%
rename from src/Flowsharp.Core/Activities/IfElse.cs
rename to src/core/Flowsharp.Core/Activities/IfElse.cs
diff --git a/src/Flowsharp.Core/Activities/SetVariable.cs b/src/core/Flowsharp.Core/Activities/SetVariable.cs
similarity index 100%
rename from src/Flowsharp.Core/Activities/SetVariable.cs
rename to src/core/Flowsharp.Core/Activities/SetVariable.cs
diff --git a/src/Flowsharp.Core/ActivityInvoker.cs b/src/core/Flowsharp.Core/ActivityInvoker.cs
similarity index 100%
rename from src/Flowsharp.Core/ActivityInvoker.cs
rename to src/core/Flowsharp.Core/ActivityInvoker.cs
diff --git a/src/Flowsharp.Core/Expressions/JavaScriptEvaluator.cs b/src/core/Flowsharp.Core/Expressions/JavaScriptEvaluator.cs
similarity index 100%
rename from src/Flowsharp.Core/Expressions/JavaScriptEvaluator.cs
rename to src/core/Flowsharp.Core/Expressions/JavaScriptEvaluator.cs
diff --git a/src/Flowsharp.Core/Expressions/PlainTextEvaluator.cs b/src/core/Flowsharp.Core/Expressions/PlainTextEvaluator.cs
similarity index 100%
rename from src/Flowsharp.Core/Expressions/PlainTextEvaluator.cs
rename to src/core/Flowsharp.Core/Expressions/PlainTextEvaluator.cs
diff --git a/src/Flowsharp.Core/Expressions/WorkflowExpressionEvaluator.cs b/src/core/Flowsharp.Core/Expressions/WorkflowExpressionEvaluator.cs
similarity index 100%
rename from src/Flowsharp.Core/Expressions/WorkflowExpressionEvaluator.cs
rename to src/core/Flowsharp.Core/Expressions/WorkflowExpressionEvaluator.cs
diff --git a/src/Flowsharp.Core/Extensions/ExceptionExtensions.cs b/src/core/Flowsharp.Core/Extensions/ExceptionExtensions.cs
similarity index 100%
rename from src/Flowsharp.Core/Extensions/ExceptionExtensions.cs
rename to src/core/Flowsharp.Core/Extensions/ExceptionExtensions.cs
diff --git a/src/Flowsharp.Core/Extensions/InvokeExtensions.cs b/src/core/Flowsharp.Core/Extensions/InvokeExtensions.cs
similarity index 100%
rename from src/Flowsharp.Core/Extensions/InvokeExtensions.cs
rename to src/core/Flowsharp.Core/Extensions/InvokeExtensions.cs
diff --git a/src/Flowsharp.Core/Flowsharp.Core.csproj b/src/core/Flowsharp.Core/Flowsharp.Core.csproj
similarity index 94%
rename from src/Flowsharp.Core/Flowsharp.Core.csproj
rename to src/core/Flowsharp.Core/Flowsharp.Core.csproj
index a9d3a8930..4d8f0671c 100644
--- a/src/Flowsharp.Core/Flowsharp.Core.csproj
+++ b/src/core/Flowsharp.Core/Flowsharp.Core.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/src/Flowsharp.Core/Handlers/ActivityHandler.cs b/src/core/Flowsharp.Core/Handlers/ActivityHandler.cs
similarity index 100%
rename from src/Flowsharp.Core/Handlers/ActivityHandler.cs
rename to src/core/Flowsharp.Core/Handlers/ActivityHandler.cs
diff --git a/src/Flowsharp.Core/Handlers/IfElseHandler.cs b/src/core/Flowsharp.Core/Handlers/IfElseHandler.cs
similarity index 100%
rename from src/Flowsharp.Core/Handlers/IfElseHandler.cs
rename to src/core/Flowsharp.Core/Handlers/IfElseHandler.cs
diff --git a/src/Flowsharp.Core/Handlers/SetVariableHandler.cs b/src/core/Flowsharp.Core/Handlers/SetVariableHandler.cs
similarity index 100%
rename from src/Flowsharp.Core/Handlers/SetVariableHandler.cs
rename to src/core/Flowsharp.Core/Handlers/SetVariableHandler.cs
diff --git a/src/Flowsharp.Core/Results/FinishWorkflowResult.cs b/src/core/Flowsharp.Core/Results/FinishWorkflowResult.cs
similarity index 100%
rename from src/Flowsharp.Core/Results/FinishWorkflowResult.cs
rename to src/core/Flowsharp.Core/Results/FinishWorkflowResult.cs
diff --git a/src/Flowsharp.Core/Results/HaltResult.cs b/src/core/Flowsharp.Core/Results/HaltResult.cs
similarity index 100%
rename from src/Flowsharp.Core/Results/HaltResult.cs
rename to src/core/Flowsharp.Core/Results/HaltResult.cs
diff --git a/src/Flowsharp.Core/Results/ReturnValueResult.cs b/src/core/Flowsharp.Core/Results/ReturnValueResult.cs
similarity index 100%
rename from src/Flowsharp.Core/Results/ReturnValueResult.cs
rename to src/core/Flowsharp.Core/Results/ReturnValueResult.cs
diff --git a/src/Flowsharp.Core/Results/ScheduleActivityResult.cs b/src/core/Flowsharp.Core/Results/ScheduleActivityResult.cs
similarity index 100%
rename from src/Flowsharp.Core/Results/ScheduleActivityResult.cs
rename to src/core/Flowsharp.Core/Results/ScheduleActivityResult.cs
diff --git a/src/Flowsharp.Core/Results/TriggerEndpointResult.cs b/src/core/Flowsharp.Core/Results/TriggerEndpointResult.cs
similarity index 100%
rename from src/Flowsharp.Core/Results/TriggerEndpointResult.cs
rename to src/core/Flowsharp.Core/Results/TriggerEndpointResult.cs
diff --git a/src/Flowsharp.Core/Serialization/Formatters/JsonTokenFormatter.cs b/src/core/Flowsharp.Core/Serialization/Formatters/JsonTokenFormatter.cs
similarity index 100%
rename from src/Flowsharp.Core/Serialization/Formatters/JsonTokenFormatter.cs
rename to src/core/Flowsharp.Core/Serialization/Formatters/JsonTokenFormatter.cs
diff --git a/src/Flowsharp.Core/Serialization/Formatters/YamlTokenFormatter.cs b/src/core/Flowsharp.Core/Serialization/Formatters/YamlTokenFormatter.cs
similarity index 100%
rename from src/Flowsharp.Core/Serialization/Formatters/YamlTokenFormatter.cs
rename to src/core/Flowsharp.Core/Serialization/Formatters/YamlTokenFormatter.cs
diff --git a/src/Flowsharp.Core/Serialization/Json/LocalizedStringConverter.cs b/src/core/Flowsharp.Core/Serialization/Json/LocalizedStringConverter.cs
similarity index 100%
rename from src/Flowsharp.Core/Serialization/Json/LocalizedStringConverter.cs
rename to src/core/Flowsharp.Core/Serialization/Json/LocalizedStringConverter.cs
diff --git a/src/Flowsharp.Core/Serialization/Tokenizers/ActivityTokenizer.cs b/src/core/Flowsharp.Core/Serialization/Tokenizers/ActivityTokenizer.cs
similarity index 100%
rename from src/Flowsharp.Core/Serialization/Tokenizers/ActivityTokenizer.cs
rename to src/core/Flowsharp.Core/Serialization/Tokenizers/ActivityTokenizer.cs
diff --git a/src/Flowsharp.Core/Serialization/Tokenizers/DefaultTokenizer.cs b/src/core/Flowsharp.Core/Serialization/Tokenizers/DefaultTokenizer.cs
similarity index 100%
rename from src/Flowsharp.Core/Serialization/Tokenizers/DefaultTokenizer.cs
rename to src/core/Flowsharp.Core/Serialization/Tokenizers/DefaultTokenizer.cs
diff --git a/src/Flowsharp.Core/Serialization/Tokenizers/Tokenizer.cs b/src/core/Flowsharp.Core/Serialization/Tokenizers/Tokenizer.cs
similarity index 100%
rename from src/Flowsharp.Core/Serialization/Tokenizers/Tokenizer.cs
rename to src/core/Flowsharp.Core/Serialization/Tokenizers/Tokenizer.cs
diff --git a/src/Flowsharp.Core/Serialization/Tokenizers/TokenizerInvoker.cs b/src/core/Flowsharp.Core/Serialization/Tokenizers/TokenizerInvoker.cs
similarity index 100%
rename from src/Flowsharp.Core/Serialization/Tokenizers/TokenizerInvoker.cs
rename to src/core/Flowsharp.Core/Serialization/Tokenizers/TokenizerInvoker.cs
diff --git a/src/Flowsharp.Core/Serialization/Tokenizers/WorkflowTokenizer.cs b/src/core/Flowsharp.Core/Serialization/Tokenizers/WorkflowTokenizer.cs
similarity index 100%
rename from src/Flowsharp.Core/Serialization/Tokenizers/WorkflowTokenizer.cs
rename to src/core/Flowsharp.Core/Serialization/Tokenizers/WorkflowTokenizer.cs
diff --git a/src/Flowsharp.Core/Serialization/WorkflowSerializer.cs b/src/core/Flowsharp.Core/Serialization/WorkflowSerializer.cs
similarity index 100%
rename from src/Flowsharp.Core/Serialization/WorkflowSerializer.cs
rename to src/core/Flowsharp.Core/Serialization/WorkflowSerializer.cs
diff --git a/src/Flowsharp.Core/WorkflowInvoker.cs b/src/core/Flowsharp.Core/WorkflowInvoker.cs
similarity index 100%
rename from src/Flowsharp.Core/WorkflowInvoker.cs
rename to src/core/Flowsharp.Core/WorkflowInvoker.cs
diff --git a/src/Flowsharp.Persistence.Abstractions/Extensions/SpecificationExtensions.cs b/src/core/Flowsharp.Persistence.Abstractions/Extensions/SpecificationExtensions.cs
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/Extensions/SpecificationExtensions.cs
rename to src/core/Flowsharp.Persistence.Abstractions/Extensions/SpecificationExtensions.cs
diff --git a/src/Flowsharp.Persistence.Abstractions/Flowsharp.Persistence.Abstractions.csproj b/src/core/Flowsharp.Persistence.Abstractions/Flowsharp.Persistence.Abstractions.csproj
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/Flowsharp.Persistence.Abstractions.csproj
rename to src/core/Flowsharp.Persistence.Abstractions/Flowsharp.Persistence.Abstractions.csproj
diff --git a/src/Flowsharp.Persistence.Abstractions/IWorkflowDefinitionStore.cs b/src/core/Flowsharp.Persistence.Abstractions/IWorkflowDefinitionStore.cs
similarity index 85%
rename from src/Flowsharp.Persistence.Abstractions/IWorkflowDefinitionStore.cs
rename to src/core/Flowsharp.Persistence.Abstractions/IWorkflowDefinitionStore.cs
index d733ad41e..999c285ad 100644
--- a/src/Flowsharp.Persistence.Abstractions/IWorkflowDefinitionStore.cs
+++ b/src/core/Flowsharp.Persistence.Abstractions/IWorkflowDefinitionStore.cs
@@ -10,5 +10,6 @@ namespace Flowsharp.Persistence
{
Task> GetManyAsync(ISpecification specification, CancellationToken cancellationToken);
Task AddAsync(WorkflowDefinition value, CancellationToken cancellationToken);
+ Task GetAsync(string id, CancellationToken cancellationToken);
}
}
\ No newline at end of file
diff --git a/src/Flowsharp.Persistence.Abstractions/IWorkflowInstanceStore.cs b/src/core/Flowsharp.Persistence.Abstractions/IWorkflowInstanceStore.cs
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/IWorkflowInstanceStore.cs
rename to src/core/Flowsharp.Persistence.Abstractions/IWorkflowInstanceStore.cs
diff --git a/src/Flowsharp.Persistence.Abstractions/Models/WorkflowDefinition.cs b/src/core/Flowsharp.Persistence.Abstractions/Models/WorkflowDefinition.cs
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/Models/WorkflowDefinition.cs
rename to src/core/Flowsharp.Persistence.Abstractions/Models/WorkflowDefinition.cs
diff --git a/src/Flowsharp.Persistence.Abstractions/Models/WorkflowInstance.cs b/src/core/Flowsharp.Persistence.Abstractions/Models/WorkflowInstance.cs
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/Models/WorkflowInstance.cs
rename to src/core/Flowsharp.Persistence.Abstractions/Models/WorkflowInstance.cs
diff --git a/src/Flowsharp.Persistence.Abstractions/Primitives/AndSpecification.cs b/src/core/Flowsharp.Persistence.Abstractions/Primitives/AndSpecification.cs
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/Primitives/AndSpecification.cs
rename to src/core/Flowsharp.Persistence.Abstractions/Primitives/AndSpecification.cs
diff --git a/src/Flowsharp.Persistence.Abstractions/Primitives/NotSpecification.cs b/src/core/Flowsharp.Persistence.Abstractions/Primitives/NotSpecification.cs
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/Primitives/NotSpecification.cs
rename to src/core/Flowsharp.Persistence.Abstractions/Primitives/NotSpecification.cs
diff --git a/src/Flowsharp.Persistence.Abstractions/Primitives/OrSpecification.cs b/src/core/Flowsharp.Persistence.Abstractions/Primitives/OrSpecification.cs
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/Primitives/OrSpecification.cs
rename to src/core/Flowsharp.Persistence.Abstractions/Primitives/OrSpecification.cs
diff --git a/src/Flowsharp.Persistence.Abstractions/Specifications/ISpecification.cs b/src/core/Flowsharp.Persistence.Abstractions/Specifications/ISpecification.cs
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/Specifications/ISpecification.cs
rename to src/core/Flowsharp.Persistence.Abstractions/Specifications/ISpecification.cs
diff --git a/src/Flowsharp.Persistence.Abstractions/Specifications/ISpecificationVisitor.cs b/src/core/Flowsharp.Persistence.Abstractions/Specifications/ISpecificationVisitor.cs
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/Specifications/ISpecificationVisitor.cs
rename to src/core/Flowsharp.Persistence.Abstractions/Specifications/ISpecificationVisitor.cs
diff --git a/src/Flowsharp.Persistence.Abstractions/Specifications/IWorkflowDefinitionSpecificationVisitor.cs b/src/core/Flowsharp.Persistence.Abstractions/Specifications/IWorkflowDefinitionSpecificationVisitor.cs
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/Specifications/IWorkflowDefinitionSpecificationVisitor.cs
rename to src/core/Flowsharp.Persistence.Abstractions/Specifications/IWorkflowDefinitionSpecificationVisitor.cs
diff --git a/src/Flowsharp.Persistence.Abstractions/Specifications/IWorkflowInstanceSpecificationVisitor.cs b/src/core/Flowsharp.Persistence.Abstractions/Specifications/IWorkflowInstanceSpecificationVisitor.cs
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/Specifications/IWorkflowInstanceSpecificationVisitor.cs
rename to src/core/Flowsharp.Persistence.Abstractions/Specifications/IWorkflowInstanceSpecificationVisitor.cs
diff --git a/src/Flowsharp.Persistence.Abstractions/Specifications/WorkflowIsBlockedOnActivity.cs b/src/core/Flowsharp.Persistence.Abstractions/Specifications/WorkflowIsBlockedOnActivity.cs
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/Specifications/WorkflowIsBlockedOnActivity.cs
rename to src/core/Flowsharp.Persistence.Abstractions/Specifications/WorkflowIsBlockedOnActivity.cs
diff --git a/src/Flowsharp.Persistence.Abstractions/Specifications/WorkflowStartsWithActivity.cs b/src/core/Flowsharp.Persistence.Abstractions/Specifications/WorkflowStartsWithActivity.cs
similarity index 100%
rename from src/Flowsharp.Persistence.Abstractions/Specifications/WorkflowStartsWithActivity.cs
rename to src/core/Flowsharp.Persistence.Abstractions/Specifications/WorkflowStartsWithActivity.cs
diff --git a/src/core/Flowsharp.Persistence.FileSystem/FileSystemWorkflowDefinitionStore.cs b/src/core/Flowsharp.Persistence.FileSystem/FileSystemWorkflowDefinitionStore.cs
new file mode 100644
index 000000000..29a569608
--- /dev/null
+++ b/src/core/Flowsharp.Persistence.FileSystem/FileSystemWorkflowDefinitionStore.cs
@@ -0,0 +1,38 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Flowsharp.Persistence.Models;
+using Flowsharp.Persistence.Specifications;
+
+namespace Flowsharp.Persistence.FileSystem
+{
+ public class FileSystemWorkflowDefinitionStore : IWorkflowDefinitionStore
+ {
+ public FileSystemWorkflowDefinitionStore()
+ {
+ WorkflowDefinitions = new List();
+ }
+
+ public IList WorkflowDefinitions { get; }
+
+ public Task> GetManyAsync(ISpecification specification, CancellationToken cancellationToken)
+ {
+ var query = WorkflowDefinitions.AsQueryable().Where(x => specification.IsSatisfiedBy(x));
+ var matches = query.Distinct().ToList();
+ return Task.FromResult>(matches);
+ }
+
+ public Task AddAsync(WorkflowDefinition value, CancellationToken cancellationToken)
+ {
+ WorkflowDefinitions.Add(value);
+ return Task.CompletedTask;
+ }
+
+ public Task GetAsync(string id, CancellationToken cancellationToken)
+ {
+ var item = WorkflowDefinitions.SingleOrDefault(x => x.Id == id);
+ return Task.FromResult(item);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/core/Flowsharp.Persistence.FileSystem/FileSystemWorkflowInstanceStore.cs b/src/core/Flowsharp.Persistence.FileSystem/FileSystemWorkflowInstanceStore.cs
new file mode 100644
index 000000000..6e2701d45
--- /dev/null
+++ b/src/core/Flowsharp.Persistence.FileSystem/FileSystemWorkflowInstanceStore.cs
@@ -0,0 +1,37 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Flowsharp.Persistence.Models;
+using Flowsharp.Persistence.Specifications;
+
+namespace Flowsharp.Persistence.FileSystem
+{
+ public class FileSystemWorkflowInstanceStore : IWorkflowInstanceStore
+ {
+ public FileSystemWorkflowInstanceStore()
+ {
+ WorkflowInstances = new List();
+ }
+
+ public IList WorkflowInstances { get; }
+
+ public Task> GetManyAsync(ISpecification specification, CancellationToken cancellationToken)
+ {
+ var query = WorkflowInstances.AsQueryable().Where(x => specification.IsSatisfiedBy(x));
+ var matches = query.Distinct().ToList();
+ return Task.FromResult>(matches);
+ }
+
+ public Task AddAsync(WorkflowInstance value, CancellationToken cancellationToken)
+ {
+ WorkflowInstances.Add(value);
+ return Task.CompletedTask;
+ }
+
+ public Task UpdateAsync(WorkflowInstance value, CancellationToken cancellationToken)
+ {
+ return Task.CompletedTask;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/core/Flowsharp.Persistence.FileSystem/Flowsharp.Persistence.FileSystem.csproj b/src/core/Flowsharp.Persistence.FileSystem/Flowsharp.Persistence.FileSystem.csproj
new file mode 100644
index 000000000..d5143e0ff
--- /dev/null
+++ b/src/core/Flowsharp.Persistence.FileSystem/Flowsharp.Persistence.FileSystem.csproj
@@ -0,0 +1,11 @@
+
+
+
+ netcoreapp2.1
+
+
+
+
+
+
+
diff --git a/src/Flowsharp.Persistence.InMemory/Flowsharp.Persistence.InMemory.csproj b/src/core/Flowsharp.Persistence.InMemory/Flowsharp.Persistence.InMemory.csproj
similarity index 100%
rename from src/Flowsharp.Persistence.InMemory/Flowsharp.Persistence.InMemory.csproj
rename to src/core/Flowsharp.Persistence.InMemory/Flowsharp.Persistence.InMemory.csproj
diff --git a/src/Flowsharp.Persistence.InMemory/InMemoryWorkflowDefinitionStore.cs b/src/core/Flowsharp.Persistence.InMemory/InMemoryWorkflowDefinitionStore.cs
similarity index 80%
rename from src/Flowsharp.Persistence.InMemory/InMemoryWorkflowDefinitionStore.cs
rename to src/core/Flowsharp.Persistence.InMemory/InMemoryWorkflowDefinitionStore.cs
index 57c79fd97..857320e22 100644
--- a/src/Flowsharp.Persistence.InMemory/InMemoryWorkflowDefinitionStore.cs
+++ b/src/core/Flowsharp.Persistence.InMemory/InMemoryWorkflowDefinitionStore.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Linq;
+using System.Security.Cryptography.X509Certificates;
using System.Threading;
using System.Threading.Tasks;
using Flowsharp.Persistence.Models;
@@ -28,5 +29,11 @@ namespace Flowsharp.Persistence.InMemory
WorkflowDefinitions.Add(value);
return Task.CompletedTask;
}
+
+ public Task GetAsync(string id, CancellationToken cancellationToken)
+ {
+ var item = WorkflowDefinitions.SingleOrDefault(x => x.Id == id);
+ return Task.FromResult(item);
+ }
}
}
\ No newline at end of file
diff --git a/src/Flowsharp.Persistence.InMemory/InMemoryWorkflowInstanceStore.cs b/src/core/Flowsharp.Persistence.InMemory/InMemoryWorkflowInstanceStore.cs
similarity index 100%
rename from src/Flowsharp.Persistence.InMemory/InMemoryWorkflowInstanceStore.cs
rename to src/core/Flowsharp.Persistence.InMemory/InMemoryWorkflowInstanceStore.cs
diff --git a/src/Flowsharp.Runtime.Abstractions/Flowsharp.Runtime.Abstractions.csproj b/src/core/Flowsharp.Runtime.Abstractions/Flowsharp.Runtime.Abstractions.csproj
similarity index 100%
rename from src/Flowsharp.Runtime.Abstractions/Flowsharp.Runtime.Abstractions.csproj
rename to src/core/Flowsharp.Runtime.Abstractions/Flowsharp.Runtime.Abstractions.csproj
diff --git a/src/Flowsharp.Runtime.Abstractions/IWorkflowHost.cs b/src/core/Flowsharp.Runtime.Abstractions/IWorkflowHost.cs
similarity index 100%
rename from src/Flowsharp.Runtime.Abstractions/IWorkflowHost.cs
rename to src/core/Flowsharp.Runtime.Abstractions/IWorkflowHost.cs
diff --git a/src/Flowsharp.Runtime/Flowsharp.Runtime.csproj b/src/core/Flowsharp.Runtime/Flowsharp.Runtime.csproj
similarity index 100%
rename from src/Flowsharp.Runtime/Flowsharp.Runtime.csproj
rename to src/core/Flowsharp.Runtime/Flowsharp.Runtime.csproj
diff --git a/src/Flowsharp.Runtime/WorkflowHost.cs b/src/core/Flowsharp.Runtime/WorkflowHost.cs
similarity index 100%
rename from src/Flowsharp.Runtime/WorkflowHost.cs
rename to src/core/Flowsharp.Runtime/WorkflowHost.cs
diff --git a/src/Flowsharp.Samples.Console/Activities/ReadLine.cs b/src/samples/Flowsharp.Samples.Console/Activities/ReadLine.cs
similarity index 100%
rename from src/Flowsharp.Samples.Console/Activities/ReadLine.cs
rename to src/samples/Flowsharp.Samples.Console/Activities/ReadLine.cs
diff --git a/src/Flowsharp.Samples.Console/Activities/WriteLine.cs b/src/samples/Flowsharp.Samples.Console/Activities/WriteLine.cs
similarity index 100%
rename from src/Flowsharp.Samples.Console/Activities/WriteLine.cs
rename to src/samples/Flowsharp.Samples.Console/Activities/WriteLine.cs
diff --git a/src/samples/Flowsharp.Samples.Console/Flowsharp.Samples.Console.csproj b/src/samples/Flowsharp.Samples.Console/Flowsharp.Samples.Console.csproj
new file mode 100644
index 000000000..73372760d
--- /dev/null
+++ b/src/samples/Flowsharp.Samples.Console/Flowsharp.Samples.Console.csproj
@@ -0,0 +1,22 @@
+
+
+
+ Exe
+ netcoreapp2.1
+ 7.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Flowsharp.Samples.Console/Handlers/ReadLineHandler.cs b/src/samples/Flowsharp.Samples.Console/Handlers/ReadLineHandler.cs
similarity index 100%
rename from src/Flowsharp.Samples.Console/Handlers/ReadLineHandler.cs
rename to src/samples/Flowsharp.Samples.Console/Handlers/ReadLineHandler.cs
diff --git a/src/Flowsharp.Samples.Console/Handlers/WriteLineHandler.cs b/src/samples/Flowsharp.Samples.Console/Handlers/WriteLineHandler.cs
similarity index 100%
rename from src/Flowsharp.Samples.Console/Handlers/WriteLineHandler.cs
rename to src/samples/Flowsharp.Samples.Console/Handlers/WriteLineHandler.cs
diff --git a/src/Flowsharp.Samples.Console/Program.cs b/src/samples/Flowsharp.Samples.Console/Program.cs
similarity index 100%
rename from src/Flowsharp.Samples.Console/Program.cs
rename to src/samples/Flowsharp.Samples.Console/Program.cs
diff --git a/src/Flowsharp.Samples.Console/Programs/AdditionWorkflowProgram.cs b/src/samples/Flowsharp.Samples.Console/Programs/AdditionWorkflowProgram.cs
similarity index 100%
rename from src/Flowsharp.Samples.Console/Programs/AdditionWorkflowProgram.cs
rename to src/samples/Flowsharp.Samples.Console/Programs/AdditionWorkflowProgram.cs
diff --git a/src/Flowsharp.Samples.Console/Programs/AdditionWorkflowProgramLongRunning.cs b/src/samples/Flowsharp.Samples.Console/Programs/AdditionWorkflowProgramLongRunning.cs
similarity index 100%
rename from src/Flowsharp.Samples.Console/Programs/AdditionWorkflowProgramLongRunning.cs
rename to src/samples/Flowsharp.Samples.Console/Programs/AdditionWorkflowProgramLongRunning.cs
diff --git a/src/Flowsharp.Samples.Console/Programs/FileBasedWorkflowProgram.cs b/src/samples/Flowsharp.Samples.Console/Programs/FileBasedWorkflowProgram.cs
similarity index 100%
rename from src/Flowsharp.Samples.Console/Programs/FileBasedWorkflowProgram.cs
rename to src/samples/Flowsharp.Samples.Console/Programs/FileBasedWorkflowProgram.cs
diff --git a/src/Flowsharp.Samples.Console/Programs/WorkflowHostProgram.cs b/src/samples/Flowsharp.Samples.Console/Programs/WorkflowHostProgram.cs
similarity index 100%
rename from src/Flowsharp.Samples.Console/Programs/WorkflowHostProgram.cs
rename to src/samples/Flowsharp.Samples.Console/Programs/WorkflowHostProgram.cs
diff --git a/src/Flowsharp.Samples.Console/SampleWorkflow.json b/src/samples/Flowsharp.Samples.Console/SampleWorkflow.json
similarity index 100%
rename from src/Flowsharp.Samples.Console/SampleWorkflow.json
rename to src/samples/Flowsharp.Samples.Console/SampleWorkflow.json
diff --git a/src/Flowsharp.Samples.Console/SampleWorkflow.yaml b/src/samples/Flowsharp.Samples.Console/SampleWorkflow.yaml
similarity index 100%
rename from src/Flowsharp.Samples.Console/SampleWorkflow.yaml
rename to src/samples/Flowsharp.Samples.Console/SampleWorkflow.yaml
diff --git a/src/Flowsharp.Samples.Console/Workflows/AdditionWorkflow.cs b/src/samples/Flowsharp.Samples.Console/Workflows/AdditionWorkflow.cs
similarity index 100%
rename from src/Flowsharp.Samples.Console/Workflows/AdditionWorkflow.cs
rename to src/samples/Flowsharp.Samples.Console/Workflows/AdditionWorkflow.cs
diff --git a/src/Flowsharp.Samples.Console/Workflows/AdditionWorkflowLongRunning.cs b/src/samples/Flowsharp.Samples.Console/Workflows/AdditionWorkflowLongRunning.cs
similarity index 100%
rename from src/Flowsharp.Samples.Console/Workflows/AdditionWorkflowLongRunning.cs
rename to src/samples/Flowsharp.Samples.Console/Workflows/AdditionWorkflowLongRunning.cs
diff --git a/src/web/modules/Flowsharp.Web.Management/Controllers/HomeController.cs b/src/web/modules/Flowsharp.Web.Management/Controllers/HomeController.cs
new file mode 100644
index 000000000..9bfe8b544
--- /dev/null
+++ b/src/web/modules/Flowsharp.Web.Management/Controllers/HomeController.cs
@@ -0,0 +1,13 @@
+using Microsoft.AspNetCore.Mvc;
+
+namespace Flowsharp.Web.Management.Controllers
+{
+ [Route("")]
+ public class HomeController : Controller
+ {
+ public IActionResult Index()
+ {
+ return View();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/web/modules/Flowsharp.Web.Management/Controllers/WorkflowsController.cs b/src/web/modules/Flowsharp.Web.Management/Controllers/WorkflowsController.cs
new file mode 100644
index 000000000..c381bf826
--- /dev/null
+++ b/src/web/modules/Flowsharp.Web.Management/Controllers/WorkflowsController.cs
@@ -0,0 +1,26 @@
+using Microsoft.AspNetCore.Mvc;
+
+namespace Flowsharp.Web.Management.Controllers
+{
+ [Route("[controller]")]
+ public class WorkflowsController : Controller
+ {
+ public IActionResult Index()
+ {
+ return View();
+ }
+
+
+ [HttpGet("edit/{id}")]
+ public IActionResult Edit(string id)
+ {
+ return View();
+ }
+
+ [HttpGet("edit2/edit3")]
+ public IActionResult Edit2()
+ {
+ return View();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/web/modules/Flowsharp.Web.Management/Flowsharp.Web.Management.csproj b/src/web/modules/Flowsharp.Web.Management/Flowsharp.Web.Management.csproj
new file mode 100644
index 000000000..a4762ca38
--- /dev/null
+++ b/src/web/modules/Flowsharp.Web.Management/Flowsharp.Web.Management.csproj
@@ -0,0 +1,24 @@
+
+
+
+ netcoreapp2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/web/modules/Flowsharp.Web.Management/Manifest.cs b/src/web/modules/Flowsharp.Web.Management/Manifest.cs
new file mode 100644
index 000000000..9ede7d84f
--- /dev/null
+++ b/src/web/modules/Flowsharp.Web.Management/Manifest.cs
@@ -0,0 +1,7 @@
+using OrchardCore.Modules.Manifest;
+
+[assembly: Module(
+ Name = "Flowsharp Workflows Management",
+ Description = "Provides admin screens to manage workflows.",
+ Dependencies = new[]{ "Flowsharp.Web.ViewComponents" }
+)]
diff --git a/src/web/modules/Flowsharp.Web.Management/Startup.cs b/src/web/modules/Flowsharp.Web.Management/Startup.cs
new file mode 100644
index 000000000..b9c0a940c
--- /dev/null
+++ b/src/web/modules/Flowsharp.Web.Management/Startup.cs
@@ -0,0 +1,21 @@
+using System;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Routing;
+using OrchardCore.Modules;
+
+namespace Flowsharp.Web.Management
+{
+ public class Startup : StartupBase
+ {
+ public override void Configure(IApplicationBuilder app, IRouteBuilder routes, IServiceProvider serviceProvider)
+ {
+ routes.MapAreaRoute
+ (
+ name: "Home",
+ areaName: "Flowsharp.Web.Management",
+ template: "",
+ defaults: new {controller = "Home", action = "Index"}
+ );
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/web/modules/Flowsharp.Web.Management/Views/Home/Index.cshtml b/src/web/modules/Flowsharp.Web.Management/Views/Home/Index.cshtml
new file mode 100644
index 000000000..c21943bc7
--- /dev/null
+++ b/src/web/modules/Flowsharp.Web.Management/Views/Home/Index.cshtml
@@ -0,0 +1,12 @@
+
+
+
+
+ title
+
+
+
+ Dashboard
+
+
+
\ No newline at end of file
diff --git a/src/web/modules/Flowsharp.Web.Management/Views/Workflows/Edit.cshtml b/src/web/modules/Flowsharp.Web.Management/Views/Workflows/Edit.cshtml
new file mode 100644
index 000000000..8de85fa33
--- /dev/null
+++ b/src/web/modules/Flowsharp.Web.Management/Views/Workflows/Edit.cshtml
@@ -0,0 +1 @@
+
Workflow Editor
\ No newline at end of file
diff --git a/src/web/modules/Flowsharp.Web.Management/Views/Workflows/Index.cshtml b/src/web/modules/Flowsharp.Web.Management/Views/Workflows/Index.cshtml
new file mode 100644
index 000000000..8645072aa
--- /dev/null
+++ b/src/web/modules/Flowsharp.Web.Management/Views/Workflows/Index.cshtml
@@ -0,0 +1,60 @@
+