diff --git a/activity.hpp b/activity.hpp index 751916a757d10618cc175b6d85a1c5c46e3587b5..d9e559ca4d82482dbbda1d209a92d844353e8eda 100644 --- a/activity.hpp +++ b/activity.hpp @@ -33,7 +33,7 @@ namespace CIS { class Activity : public ActivityBase { public: // All `Name` should not contain QuotationMark(") - Activity(string displayName, string className, string entityName = "") + explicit Activity(string displayName, string className, string entityName = "") : displayName(Utility::HtmlEscapeString(displayName)), className(className), entityName(entityName), taskId(Utility::GenUUID()) {} Activity(const Activity &another) : displayName(another.displayName), className(another.className), entityName(another.entityName), taskId(Utility::GenUUID()), inputSettings(another.inputSettings) {} @@ -88,8 +88,11 @@ namespace CIS { class ManualOperation : public ActivityBase { public: explicit ManualOperation(string displayName, string message = "", string entityName = "") - : displayName(Utility::HtmlEscapeString(displayName)), messageInCSharp(Utility::HtmlEscapeString("\"" + message + "\"")), entityName(entityName) {} - + : displayName(Utility::HtmlEscapeString(displayName)), messageInCSharp(Utility::HtmlEscapeString("\"" + message + "\"")), entityName(entityName), taskId(Utility::GenUUID()) {} + ManualOperation(const ManualOperation &another) + : displayName(another.displayName), messageInCSharp(another.messageInCSharp), entityName(another.entityName), taskId(Utility::GenUUID()) {} + ManualOperation(ManualOperation &&) = default; + ManualOperation &explicitSetMessageInCSharp(string messageInCSharp) { this->messageInCSharp = messageInCSharp; return *this; @@ -97,9 +100,11 @@ namespace CIS { private: string displayName, messageInCSharp, entityName; + string taskId; virtual rlib::string generateXaml() const override { rlib::string xamlCode = templates::MANUAL_OPERATION_XAML; xamlCode.replace_once("__TEMPLATE_ARG_DisplayName", displayName); + xamlCode.replace_once("__TEMPLATE_ARG_TaskId", this->taskId); xamlCode.replace_once("__TEMPLATE_ARG_CodeLines", messageInCSharp); auto entityXaml = this->entityName == "" ? "" : rlib::string(templates::ENTITY_DEF_TEMPLATE).replace("__TEMPLATE_ARG_EntityName", this->entityName); diff --git a/xaml-template.hpp b/xaml-template.hpp index 337d536ccf0478ecec4c72189c375444c0582596..a84987874cf7a5af31989f3d975f70ef5b8fa392 100644 --- a/xaml-template.hpp +++ b/xaml-template.hpp @@ -96,7 +96,7 @@ 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" __TEMPLATE_ARG_EntityDefPlaceholder> +R"XAML( <mwcwa:ManualOperation DeprecatedTaskId="{x:Null}" TaskId="__TEMPLATE_ARG_TaskId" DisplayName="__TEMPLATE_ARG_DisplayName" MonitoringSystems="icm" WaitUntilFinish="True" __TEMPLATE_ARG_EntityDefPlaceholder> <mwcwa:ManualOperation.AdditionalContent> <InArgument x:TypeArguments="x:String"> <mca:CSharpValue x:TypeArguments="x:String">__TEMPLATE_ARG_CodeLines</mca:CSharpValue>