diff --git a/activity.hpp b/activity.hpp index 932fd7fd84c1c606611575a63bf9fdf1e9ab3989..b2439fc795ed89f8e225529f04135d23eeb7718f 100644 --- a/activity.hpp +++ b/activity.hpp @@ -21,9 +21,14 @@ namespace CIS { class Flow; class Metadata; - class Activity { - public: + class ActivityBase { + private: friend Flow; + virtual rlib::string generateXaml() const = 0; + }; + + class Activity : private ActivityBase { + public: // All `Name` should not contain QuotationMark(") Activity(string displayName, string className, string entityName = "") : displayName(Utility::HtmlEscapeString(displayName)), className(className), entityName(entityName), taskId(Utility::GenUUID()) {} @@ -50,7 +55,7 @@ namespace CIS { auto inputSettingsString = ",\n"_rs.join(inputSettingStrings); return rlib::string(templates::ACTIVITY_DICT_TEMPLATE_UNESCAPED).replace_once("__TEMPLATE_ARG_DictLines", inputSettingsString); } - auto generateXaml() const { + virtual rlib::string generateXaml() const { rlib::string xamlCode; if(inputSettings.empty()) { @@ -75,9 +80,13 @@ namespace CIS { } }; + class ManualOperation : private ActivityBase { + + }; + class Flow { public: - Flow(const Activity &activity) { + Flow(const ActivityBase &activity) { xamlCode = activity.generateXaml(); } Flow(rlib::string xamlCode) : xamlCode(xamlCode) {} diff --git a/xaml-template.hpp b/xaml-template.hpp index 6c27599dac90702e0b34f36db6eddb412cbbe5fb..9920e955fdb22b88682d92d803adc0cb019fe0b5 100644 --- a/xaml-template.hpp +++ b/xaml-template.hpp @@ -94,6 +94,17 @@ __TEMPLATE_ARG_XtraAssemblies </sco:Collection> )XAML"; constexpr auto STD_XAML_TAIL = "</Activity>"; + +constexpr auto MANUAL_OPERATION_XAML = +R"XAML( <mwcwa:ManualOperation DeprecatedTaskId="{x:Null}" TaskId="{x:Null}" DisplayName="__TEMPLATE_ARG_DisplayName" MonitoringSystems="icm" WaitUntilFinish="True"> + <mwcwa:ManualOperation.AdditionalContent> + <InArgument x:TypeArguments="x:String"> + <mca:CSharpValue x:TypeArguments="x:String">__TEMPLATE_ARG_CodeLines</mca:CSharpValue> + </InArgument> + </mwcwa:ManualOperation.AdditionalContent> + </mwcwa:ManualOperation> +)XAML"; + } }