From 397978312c51d3634508ea7701c4aa6b00d97ec6 Mon Sep 17 00:00:00 2001
From: Recolic K <bensl@microsoft.com>
Date: Fri, 14 May 2021 16:40:38 +0800
Subject: [PATCH] better demo

---
 workflows/another.cc | 24 +++++++-----------------
 1 file changed, 7 insertions(+), 17 deletions(-)

diff --git a/workflows/another.cc b/workflows/another.cc
index 87f88ee..d0a01ae 100644
--- a/workflows/another.cc
+++ b/workflows/another.cc
@@ -1,24 +1,14 @@
 #include <cis-workflow-gen/quick-include.hpp>
 
 int main() {
-    #define DEFINE_ACTIVITY(name, entityName) \
-        Activity name (#name, "FleetAGC.Activities.DelayActivity", entityName); \
-        name.addInputSetting("Timespan", "60");
-    
-    DEFINE_ACTIVITY(GridManager, "M365Poc.SPO.GridManager")
-    DEFINE_ACTIVITY(AuthAndProvision, "M365Poc.SPO.AuthProvisioning")
-    DEFINE_ACTIVITY(FarmsAndTennats, "")
-    DEFINE_ACTIVITY(CSC , "")
-    DEFINE_ACTIVITY(FastSearch , "")
-    DEFINE_ACTIVITY(Microservices, "M365Poc.SPO.MicroServices")
-    DEFINE_ACTIVITY(MonitorAndAlert, "M365Poc.SPO.MonitoringAlerting")
-    DEFINE_ACTIVITY(SPOTooling, "M365Poc.SPO.SPOTooling")
-    DEFINE_ACTIVITY(UXCDNFailover, "M365Poc.SPO.UXCDNFailover")
-    DEFINE_ACTIVITY(ODFBSyncClient, "M365Poc.SPO.ODFBSyncClient")
+    #define A_2(name, entityName) (Activity(#name, "FleetAGC.Activities.DelayActivity", #entityName).addInputSetting("Timespan", "60"))
+    #define A_1(name) A_2(name, "")
+    #define A_proxy(x, Arg1, Arg2, FUNC, ...) FUNC
+    #define A(...) A_proxy(, ##__VA_ARGS__, A_2(__VA_ARGS__), A_1(__VA_ARGS__))
  
-    auto block1 = GridManager >> FarmsAndTennats >> (CSC | FastSearch);
-    auto block2 = Microservices | MonitorAndAlert;
-    auto completeFlow = block1 | AuthAndProvision | block2;// | SPOTooling | UXCDNFailover | ODFBSyncClient;
+    auto block1 = A(GridManager, M365Poc.SPO.GridManager) >> A(FarmsAndTennats) >> (A(CSC) | A(FastSearch));
+    auto block2 = A(Microservices, M365Poc.SPO.MicroServices) | A(MonitorAndAlert, M365Poc.SPO.MonitoringAlerting);
+    auto completeFlow = block1 | A(AuthAndProvision, M365Poc.SPO.AuthProvisioning) | block2 | A(SPOTooling, M365Poc.SPO.SPOTooling) | A(UXCDNFailover, M365Poc.SPO.UXCDNFailover) | A(ODFBSyncClient, M365Poc.SPO.ODFBSyncClient);
  
     println(to_file("SPOBuildoutPOCWorkflow.xaml"), completeFlow.generateXaml("FleetAGC.Workflows.SPOBuildoutPOCWorkflow"));
 }
-- 
GitLab