/// <summary> /// Registers all workflow methods to macro resolver. /// </summary> public static void RegisterMethods() { MacroMethod passedThroughActions = new MacroMethod("PassedThroughActions", PassedThroughActions) { Comment = "Returns true if document passed through specified actions.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TreeNode) } }; passedThroughActions.AddParameter("document", typeof(TreeNode), "Document to check."); passedThroughActions.AddParameter("actions", typeof(string), "Action names separated with a semicolon"); passedThroughActions.AddParameter("allActions", typeof(string), "If true, document must have passed through all specified actions. One of them is sufficient otherwise."); MacroMethods.RegisterMethod(passedThroughActions); MacroMethod passedThroughSteps = new MacroMethod("PassedThroughSteps", PassedThroughSteps) { Comment = "Returns true if document passed through specified tags.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TreeNode) } }; passedThroughSteps.AddParameter("document", typeof(TreeNode), "Document to check."); passedThroughSteps.AddParameter("steps", typeof(string), "Step names separated with a semicolon"); passedThroughSteps.AddParameter("allSteps", typeof(bool), "If true, document must have passed through all specified steps. One of them is sufficient otherwise."); MacroMethods.RegisterMethod(passedThroughSteps); }
/// <summary> /// Registers all automation methods to macro resolver. /// </summary> public static void RegisterMethods() { MacroMethod passedThroughActions = new MacroMethod("PassedThroughAutomationActions", PassedThroughActions) { Comment = "Returns true if process passed through specified actions.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(AutomationStateInfo) } }; passedThroughActions.AddParameter("state", typeof(AutomationStateInfo), "Process instance to check."); passedThroughActions.AddParameter("actions", typeof(string), "Action names separated with a semicolon"); passedThroughActions.AddParameter("allActions", typeof(string), "If true, process must have passed through all specified actions. One of them is sufficient otherwise."); MacroMethods.RegisterMethod(passedThroughActions); MacroMethod passedThroughSteps = new MacroMethod("PassedThroughAutomationSteps", PassedThroughSteps) { Comment = "Returns true if process passed through specified tags.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(AutomationStateInfo) } }; passedThroughSteps.AddParameter("state", typeof(AutomationStateInfo), "Process instance to check."); passedThroughSteps.AddParameter("steps", typeof(string), "Step names separated with a semicolon"); passedThroughSteps.AddParameter("allSteps", typeof(bool), "If true, process must have passed through all specified steps. One of them is sufficient otherwise."); MacroMethods.RegisterMethod(passedThroughSteps); }
/// <summary> /// Registers all blog methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get user name MacroMethod getBoardMessagesCount = new MacroMethod("GetBoardMessagesCount", GetBoardMessagesCount) { Comment = "Returns count of messages in messageboard.", Type = typeof(int), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getBoardMessagesCount.AddParameter("documentId", typeof(int), "ID of the document."); getBoardMessagesCount.AddParameter("boardWebpartName", typeof(object), "Name of the webpart used for creating messageboard."); getBoardMessagesCount.AddParameter("type", typeof(object), "String constant representing the type of board 'user', 'group' or 'document' (default) are accepted."); MacroMethods.RegisterMethod(getBoardMessagesCount); }
/// <summary> /// Registers all forum methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get post URL MacroMethod getPostURL = new MacroMethod("GetPostURL", GetPostURL) { Comment = "Returns link to selected post.", Type = typeof(string), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getPostURL.AddParameter("postIdPath", typeof(object), "Post ID path."); getPostURL.AddParameter("forumId", typeof(object), "Forum ID."); getPostURL.AddParameter("aliasPath", typeof(object), "Alias path."); MacroMethods.RegisterMethod(getPostURL); }
/// <summary> /// Registers all translation services methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get user name MacroMethod isTranslationReady = new MacroMethod("IsTranslationReady", IsTranslationReady) { Comment = "Returns true if there is at least one translation submission item with target XLIFF ready to import.", Type = typeof(bool), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(CMS.DocumentEngine.TreeNode), typeof(DocumentInfo) } }; isTranslationReady.AddParameter("document", typeof(CMS.DocumentEngine.TreeNode), "Document to check."); MacroMethods.RegisterMethod(isTranslationReady); MacroMethod getTranslationPriority = new MacroMethod("GetTranslationPriority", GetTranslationPriority) { Comment = "Returns priority name from priority integer constant.", Type = typeof(string), MinimumParameters = 1, }; getTranslationPriority.AddParameter("priorty", typeof(int), "Priority integer constant."); MacroMethods.RegisterMethod(getTranslationPriority); }
/// <summary> /// Registers all forum methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get post URL MacroMethod getPostURL = new MacroMethod("GetPostURL", GetPostURL) { Comment = "Returns link to selected post.", Type = typeof(string), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getPostURL.AddParameter("postIdPath", typeof(object), "Post ID path."); getPostURL.AddParameter("forumId", typeof(object), "Forum ID."); getPostURL.AddParameter("aliasPath", typeof(object), "Alias path."); MacroMethods.RegisterMethod(getPostURL); }
/// <summary> /// Registers all blog methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get user name MacroMethod getBoardMessagesCount = new MacroMethod("GetBoardMessagesCount", GetBoardMessagesCount) { Comment = "Returns count of messages in messageboard.", Type = typeof(int), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getBoardMessagesCount.AddParameter("documentId", typeof(int), "ID of the document."); getBoardMessagesCount.AddParameter("boardWebpartName", typeof(object), "Name of the webpart used for creating messageboard."); getBoardMessagesCount.AddParameter("type", typeof(object), "String constant representing the type of board 'user', 'group' or 'document' (default) are accepted."); MacroMethods.RegisterMethod(getBoardMessagesCount); }
/// <summary> /// Registers all translation services methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get user name MacroMethod isTranslationReady = new MacroMethod("IsTranslationReady", IsTranslationReady) { Comment = "Returns true if there is at least one translation submission item with target XLIFF ready to import.", Type = typeof(bool), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(CMS.DocumentEngine.TreeNode), typeof(DocumentInfo) } }; isTranslationReady.AddParameter("document", typeof(CMS.DocumentEngine.TreeNode), "Document to check."); MacroMethods.RegisterMethod(isTranslationReady); MacroMethod getTranslationPriority = new MacroMethod("GetTranslationPriority", GetTranslationPriority) { Comment = "Returns priority name from priority integer constant.", Type = typeof(string), MinimumParameters = 1, }; getTranslationPriority.AddParameter("priorty", typeof(int), "Priority integer constant."); MacroMethods.RegisterMethod(getTranslationPriority); }
/// <summary> /// Register all content macro methods to re /// </summary> public static void RegisterMethods() { MacroMethod isInCategories = new MacroMethod("IsInCategories", IsInCategories) { Comment = "Returns true if document is in selected categories.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TreeNode) } }; isInCategories.AddParameter("document", typeof(TreeNode), "Document to check."); isInCategories.AddParameter("categories", typeof(string), "Category names separated with a semicolon."); isInCategories.AddParameter("allCategories", typeof(bool), "If true, document must be in all of the specified categories."); MacroMethods.RegisterMethod(isInCategories); MacroMethod hasTags = new MacroMethod("HasTags", HasTags) { Comment = "Returns true if document has specified tags.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TreeNode) } }; hasTags.AddParameter("document", typeof(TreeNode), "Document to check."); hasTags.AddParameter("tags", typeof(string), "List of tags separated with a semicolon."); hasTags.AddParameter("allTags", typeof(bool), "If true, document must have all specified tags. If false, one of specified tags is sufficient."); MacroMethods.RegisterMethod(hasTags); MacroMethod isInRelationship = new MacroMethod("IsInRelationship", IsInRelationship) { Comment = "Returns true if document has left or right relationship with specified document.", Type = typeof(bool), MinimumParameters = 4, AllowedTypes = new List <Type>() { typeof(TreeNode) } }; isInRelationship.AddParameter("document", typeof(TreeNode), "Document to check."); isInRelationship.AddParameter("side", typeof(string), "Side of checked document in the relationship."); isInRelationship.AddParameter("relationship", typeof(string), "Relationship name."); isInRelationship.AddParameter("relatedDocument", typeof(string), "Related document."); isInRelationship.AddParameter("relatedDocumentSite", typeof(string), "Related document site name."); MacroMethods.RegisterMethod(isInRelationship); MacroMethod isTranslatedTo = new MacroMethod("IsTranslatedTo", IsTranslatedTo) { Comment = "Returns true if document is translated to one of selected cultures.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TreeNode) } }; isTranslatedTo.AddParameter("document", typeof(TreeNode), "Document to check."); isTranslatedTo.AddParameter("cultures", typeof(string), "Culture codes separated with a semicolon."); isTranslatedTo.AddParameter("publishedOnly", typeof(bool), "Indicates whether only published translations should be considered."); MacroMethods.RegisterMethod(isTranslatedTo); }
/// <summary> /// Registers all web analytics methods to macro resolver. /// </summary> public static void RegisterMethods() { MacroMethod isReturningVisitor = new MacroMethod("IsReturningVisitor", IsReturningVisitor) { Comment = "Returns true if current visitor is returning.", Type = typeof(bool), MinimumParameters = 0, AllowedTypes = new List<Type>() { typeof(VisitorNamespace) } }; MacroMethods.RegisterMethod(isReturningVisitor); MacroMethod isFirstTimeVisitor = new MacroMethod("IsFirstTimeVisitor", IsFirstTimeVisitor) { Comment = "Returns true if current visitor comes to the website for the first time.", Type = typeof(bool), MinimumParameters = 0, AllowedTypes = new List<Type>() { typeof(VisitorNamespace) } }; MacroMethods.RegisterMethod(isFirstTimeVisitor); MacroMethod getSearchEngineKeyword = new MacroMethod("GetSearchEngineKeyword", GetSearchEngineKeyword) { Comment = "Returns search keywords from search engine visitor came from.", Type = typeof(string), MinimumParameters = 0, AllowedTypes = new List<Type>() { typeof(VisitorNamespace) } }; MacroMethods.RegisterMethod(getSearchEngineKeyword); MacroMethod getSearchEngine = new MacroMethod("GetSearchEngine", GetSearchEngine) { Comment = "Returns search engine visitor came from.", Type = typeof(string), MinimumParameters = 0, AllowedTypes = new List<Type>() { typeof(VisitorNamespace) } }; MacroMethods.RegisterMethod(getSearchEngine); MacroMethod getUrlReferrer = new MacroMethod("GetUrlReferrer", GetUrlReferrer) { Comment = "Returns absolute URI of the URLRefferer from current HTTP context.", Type = typeof(string), MinimumParameters = 0, AllowedTypes = new List<Type>() { typeof(VisitorNamespace) } }; MacroMethods.RegisterMethod(getUrlReferrer); MacroMethod getUrlReferrerParameter = new MacroMethod("GetUrlReferrerParameter", GetUrlReferrerParameter) { Comment = "Returns value of specified URLReferrer query string parameter.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(VisitorNamespace) } }; getUrlReferrerParameter.AddParameter("parameterName", typeof(string), "Query string parameter name."); MacroMethods.RegisterMethod(getUrlReferrerParameter); MacroMethod getCurrentDistance = new MacroMethod("GetCurrentDistance", GetCurrentDistance) { Comment = "Returns current distance (in kilometers) from specified location (based on Geo IP).", Type = typeof(double), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(VisitorNamespace) } }; getCurrentDistance.AddParameter("latitude", typeof(double), "Latitude of the place."); getCurrentDistance.AddParameter("longitude", typeof(double), "Longitude of the place."); MacroMethods.RegisterMethod(getCurrentDistance); }
/// <summary> /// Register all content macro methods to re /// </summary> public static void RegisterMethods() { MacroMethod isInCategories = new MacroMethod("IsInCategories", IsInCategories) { Comment = "Returns true if document is in selected categories.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TreeNode) } }; isInCategories.AddParameter("document", typeof(TreeNode), "Document to check."); isInCategories.AddParameter("categories", typeof(string), "Category names separated with a semicolon."); isInCategories.AddParameter("allCategories", typeof(bool), "If true, document must be in all of the specified categories."); MacroMethods.RegisterMethod(isInCategories); MacroMethod hasTags = new MacroMethod("HasTags", HasTags) { Comment = "Returns true if document has specified tags.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TreeNode) } }; hasTags.AddParameter("document", typeof(TreeNode), "Document to check."); hasTags.AddParameter("tags", typeof(string), "List of tags separated with a semicolon."); hasTags.AddParameter("allTags", typeof(bool), "If true, document must have all specified tags. If false, one of specified tags is sufficient."); MacroMethods.RegisterMethod(hasTags); MacroMethod isInRelationship = new MacroMethod("IsInRelationship", IsInRelationship) { Comment = "Returns true if document has left or right relationship with specified document.", Type = typeof(bool), MinimumParameters = 4, AllowedTypes = new List<Type>() { typeof(TreeNode) } }; isInRelationship.AddParameter("document", typeof(TreeNode), "Document to check."); isInRelationship.AddParameter("side", typeof(string), "Side of checked document in the relationship."); isInRelationship.AddParameter("relationship", typeof(string), "Relationship name."); isInRelationship.AddParameter("relatedDocument", typeof(string), "Related document."); isInRelationship.AddParameter("relatedDocumentSite", typeof(string), "Related document site name."); MacroMethods.RegisterMethod(isInRelationship); MacroMethod isTranslatedTo = new MacroMethod("IsTranslatedTo", IsTranslatedTo) { Comment = "Returns true if document is translated to one of selected cultures.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TreeNode) } }; isTranslatedTo.AddParameter("document", typeof(TreeNode), "Document to check."); isTranslatedTo.AddParameter("cultures", typeof(string), "Culture codes separated with a semicolon."); isTranslatedTo.AddParameter("publishedOnly", typeof(bool), "Indicates whether only published translations should be considered."); MacroMethods.RegisterMethod(isTranslatedTo); }
/// <summary> /// Registers all blog methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get user name MacroMethod getUserName = new MacroMethod("GetUserName", GetUserName) { Comment = "Returns user name.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getUserName.AddParameter("userId", typeof(object), "User ID."); MacroMethods.RegisterMethod(getUserName); // Get user full name MacroMethod getUserFullName = new MacroMethod("GetUserFullName", GetUserFullName) { Comment = "Returns user full name.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getUserFullName.AddParameter("userId", typeof(object), "User ID."); MacroMethods.RegisterMethod(getUserFullName); // Get blog comment count MacroMethod getBlogCommentsCount = new MacroMethod("GetBlogCommentsCount", GetBlogCommentsCount) { Comment = "Returns number of comments of given blog.", Type = typeof(int), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getBlogCommentsCount.AddParameter("postId", typeof(object), "Post document ID."); getBlogCommentsCount.AddParameter("postAliasPath", typeof(object), "Post alias path."); getBlogCommentsCount.AddParameter("includingTrackbacks", typeof(bool), "Indicates if trackback comments should be included (true by default)."); MacroMethods.RegisterMethod(getBlogCommentsCount); // Get document tags MacroMethod getDocumentTags = new MacroMethod("GetDocumentTags", GetDocumentTags) { Comment = "Gets a list of links of tags assigned for the specific document pointing to the page with URL specified.", Type = typeof(string), MinimumParameters = 3, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getDocumentTags.AddParameter("documentGroupId", typeof(object), "ID of the group document tags belong to."); getDocumentTags.AddParameter("documentTags", typeof(object), "String containing all the tags related to the document."); getDocumentTags.AddParameter("documentListPageUrl", typeof(string), "URL of the page displaying other documents of the specified tag."); MacroMethods.RegisterMethod(getDocumentTags); }
/// <summary> /// Registers all media library methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get media file URL MacroMethod getMediaFileUrl = new MacroMethod("GetMediaFileUrl", GetMediaFileUrl) { Comment = "Returns direct URL to the media file, user permissions are not checked.", Type = typeof(string), MinimumParameters = 5, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getMediaFileUrl.AddParameter("libraryId", typeof(object), "Media library ID."); getMediaFileUrl.AddParameter("filePath", typeof(object), "File path."); getMediaFileUrl.AddParameter("fileGuid", typeof(object), "File GUID."); getMediaFileUrl.AddParameter("fileName", typeof(object), "File name."); getMediaFileUrl.AddParameter("useSecureLinks", typeof(object), "Determines whether to generate secure link."); getMediaFileUrl.AddParameter("downloadlink", typeof(object), "Determines whether disposition parametr should be added to permanent link."); MacroMethods.RegisterMethod(getMediaFileUrl); // Get media file URL with check MacroMethod getMediaFileUrlWithCheck = new MacroMethod("GetMediaFileUrlWithCheck", GetMediaFileUrlWithCheck) { Comment = "Returns URL to media file which is rewritten to calling GetMediaFile.aspx page where user permissions are checked.", Type = typeof(string), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getMediaFileUrlWithCheck.AddParameter("fileGuid", typeof(object), "File GUID."); getMediaFileUrlWithCheck.AddParameter("fileName", typeof(object), "File name."); MacroMethods.RegisterMethod(getMediaFileUrlWithCheck); // Get media file direct URL MacroMethod getMediaFileDirectUrl = new MacroMethod("GetMediaFileDirectUrl", GetMediaFileDirectUrl) { Comment = "Returns direct URL to the media file, user permissions are not checked.", Type = typeof(string), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getMediaFileDirectUrl.AddParameter("libraryId", typeof(object), "Media library ID."); getMediaFileDirectUrl.AddParameter("filePath", typeof(object), "File path."); MacroMethods.RegisterMethod(getMediaFileDirectUrl); // Get media file detail URL MacroMethod getMediaFileDetailUrl = new MacroMethod("GetMediaFileDetailUrl", GetMediaFileDetailUrl) { Comment = "Returns URL to detail of media file.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getMediaFileDetailUrl.AddParameter("fileId", typeof(object), "File ID."); getMediaFileDetailUrl.AddParameter("parameter", typeof(string), "Query parameter name (\"fileId\" by default)."); MacroMethods.RegisterMethod(getMediaFileDetailUrl); }
/// <summary> /// Registers all ecommerce methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get add to shopping cart link MacroMethod getAddToShoppingCartLink = new MacroMethod("GetAddToShoppingCartLink", GetAddToShoppingCartLink) { Comment = "Returns link to \"add to shoppingcart\".", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getAddToShoppingCartLink.AddParameter("productId", typeof(object), "Product ID."); getAddToShoppingCartLink.AddParameter("enabled", typeof(object), "Indicates whether product is enabled or not."); MacroMethods.RegisterMethod(getAddToShoppingCartLink); // Get add to wishlist link MacroMethod getAddToWishListLink = new MacroMethod("GetAddToWishListLink", GetAddToWishListLink) { Comment = "Returns link to add specified product to the user's wishlist.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getAddToWishListLink.AddParameter("productId", typeof(object), "Product ID."); MacroMethods.RegisterMethod(getAddToWishListLink); // Get remove from wishlist link MacroMethod getRemoveFromWishListLink = new MacroMethod("GetRemoveFromWishListLink", GetRemoveFromWishListLink) { Comment = "Returns link to remove specified product from the user's wishlist.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getRemoveFromWishListLink.AddParameter("productId", typeof(object), "Product ID."); MacroMethods.RegisterMethod(getRemoveFromWishListLink); // Get public status name MacroMethod gtPublicStatusName = new MacroMethod("GetPublicStatusName", GetPublicStatusName) { Comment = "Returns the public SKU status display name.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; gtPublicStatusName.AddParameter("statusId", typeof(object), "Status ID"); MacroMethods.RegisterMethod(gtPublicStatusName); // Get shopping cart URL MacroMethod shoppingCartURL = new MacroMethod("ShoppingCartURL", ShoppingCartURL) { Comment = "Returns URL to the shopping cart.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; shoppingCartURL.AddParameter("siteName", typeof(string), "Site name."); MacroMethods.RegisterMethod(shoppingCartURL); // Get wishlist URL MacroMethod wishlistURL = new MacroMethod("WishlistURL", WishlistURL) { Comment = "Returns URL to the wish list.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; wishlistURL.AddParameter("siteName", typeof(string), "Site name"); MacroMethods.RegisterMethod(wishlistURL); // Get product URL MacroMethod getProductUrl = new MacroMethod("GetProductUrl", GetProductUrl) { Comment = "Returns product URL.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getProductUrl.AddParameter("skuId", typeof(object), "SKU ID."); MacroMethods.RegisterMethod(getProductUrl); // Get product URL by GUID MacroMethod getProductUrlByGUID = new MacroMethod("GetProductUrlByGUID", GetProductUrlByGUID) { Comment = "Returns user friendly URL of the specified SKU.", Type = typeof(string), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getProductUrlByGUID.AddParameter("skuGuid", typeof(object), "SKU GUID."); getProductUrlByGUID.AddParameter("skuName", typeof(object), "SKU name."); getProductUrlByGUID.AddParameter("siteName", typeof(object), "Site name."); MacroMethods.RegisterMethod(getProductUrlByGUID); // Get manufacturer MacroMethod getManufacturer = new MacroMethod("GetManufacturer", GetManufacturer) { Comment = "Gets object from the specified column of the manufacturer with specific ID.", Type = typeof(object), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getManufacturer.AddParameter("id", typeof(int), "Manufacturer ID."); getManufacturer.AddParameter("column", typeof(string), "Column name."); MacroMethods.RegisterMethod(getManufacturer); // Get department MacroMethod getDepartment = new MacroMethod("GetDepartment", GetDepartment) { Comment = "Gets object from the specified column of the department with specific ID.", Type = typeof(object), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getDepartment.AddParameter("id", typeof(int), "Department ID."); getDepartment.AddParameter("column", typeof(string), "Column name."); MacroMethods.RegisterMethod(getDepartment); // Get supplier MacroMethod getSupplier = new MacroMethod("GetSupplier", GetSupplier) { Comment = "Gets object from the specified column of the supplier with specific ID.", Type = typeof(object), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getSupplier.AddParameter("id", typeof(int), "Supplier ID."); getSupplier.AddParameter("column", typeof(string), "Column name."); MacroMethods.RegisterMethod(getSupplier); // Get internal status MacroMethod getInternalStatus = new MacroMethod("GetInternalStatus", GetInternalStatus) { Comment = "Gets object from the specified column of the internal status with specific ID.", Type = typeof(object), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getInternalStatus.AddParameter("id", typeof(int), "Internal status ID."); getInternalStatus.AddParameter("column", typeof(string), "Column name."); MacroMethods.RegisterMethod(getInternalStatus); // Get public status MacroMethod getPublicStatus = new MacroMethod("GetPublicStatus", GetPublicStatus) { Comment = "Gets object from the specified column of the public status with specific ID.", Type = typeof(object), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getPublicStatus.AddParameter("id", typeof(int), "Public status ID."); getPublicStatus.AddParameter("column", typeof(string), "Column name."); MacroMethods.RegisterMethod(getPublicStatus); // Get product image MacroMethod getProductImage = new MacroMethod("GetProductImage", GetProductImage) { Comment = "Returns complete HTML code of the specified resized product image, if not such image exists, default image is returned.", Type = typeof(string), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getProductImage.AddParameter("imageUrl", typeof(object), "Product image url."); getProductImage.AddParameter("alt", typeof(object), "Image alternate text."); getProductImage.AddParameter("maxSideSize", typeof(object), "Max side size of the image."); getProductImage.AddParameter("width", typeof(object), "Width of the image."); getProductImage.AddParameter("height", typeof(object), "Height of the image."); MacroMethods.RegisterMethod(getProductImage); // Format price MacroMethod formatPrice = new MacroMethod("FormatPrice", FormatPrice) { Comment = "Returns price rounded and formatted according to the current currency properties.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; formatPrice.AddParameter("price", typeof(double), "Price to be formatted"); formatPrice.AddParameter("round", typeof(bool), "True - price is rounded according to the current currency settings before formatting"); MacroMethods.RegisterMethod(formatPrice); // Cart items count MacroMethod getShoppingCartItemsCount = new MacroMethod("GetShoppingCartItemsCount", GetShoppingCartItemsCount) { Comment = "Returns number of products in current shopping cart.", Type = typeof(int), MinimumParameters = 0, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; MacroMethods.RegisterMethod(getShoppingCartItemsCount); }
/// <summary> /// Registers all media library methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get media file URL MacroMethod getMediaFileUrl = new MacroMethod("GetMediaFileUrl", GetMediaFileUrl) { Comment = "Returns direct URL to the media file, user permissions are not checked.", Type = typeof(string), MinimumParameters = 5, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getMediaFileUrl.AddParameter("libraryId", typeof(object), "Media library ID."); getMediaFileUrl.AddParameter("filePath", typeof(object), "File path."); getMediaFileUrl.AddParameter("fileGuid", typeof(object), "File GUID."); getMediaFileUrl.AddParameter("fileName", typeof(object), "File name."); getMediaFileUrl.AddParameter("useSecureLinks", typeof(object), "Determines whether to generate secure link."); getMediaFileUrl.AddParameter("downloadlink", typeof(object), "Determines whether disposition parametr should be added to permanent link."); MacroMethods.RegisterMethod(getMediaFileUrl); // Get media file URL with check MacroMethod getMediaFileUrlWithCheck = new MacroMethod("GetMediaFileUrlWithCheck", GetMediaFileUrlWithCheck) { Comment = "Returns URL to media file which is rewritten to calling GetMediaFile.aspx page where user permissions are checked.", Type = typeof(string), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getMediaFileUrlWithCheck.AddParameter("fileGuid", typeof(object), "File GUID."); getMediaFileUrlWithCheck.AddParameter("fileName", typeof(object), "File name."); MacroMethods.RegisterMethod(getMediaFileUrlWithCheck); // Get media file direct URL MacroMethod getMediaFileDirectUrl = new MacroMethod("GetMediaFileDirectUrl", GetMediaFileDirectUrl) { Comment = "Returns direct URL to the media file, user permissions are not checked.", Type = typeof(string), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getMediaFileDirectUrl.AddParameter("libraryId", typeof(object), "Media library ID."); getMediaFileDirectUrl.AddParameter("filePath", typeof(object), "File path."); MacroMethods.RegisterMethod(getMediaFileDirectUrl); // Get media file detail URL MacroMethod getMediaFileDetailUrl = new MacroMethod("GetMediaFileDetailUrl", GetMediaFileDetailUrl) { Comment = "Returns URL to detail of media file.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getMediaFileDetailUrl.AddParameter("fileId", typeof(object), "File ID."); getMediaFileDetailUrl.AddParameter("parameter", typeof(string), "Query parameter name (\"fileId\" by default)."); MacroMethods.RegisterMethod(getMediaFileDetailUrl); }
/// <summary> /// Registers all ecommerce methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get add to shopping cart link MacroMethod getAddToShoppingCartLink = new MacroMethod("GetAddToShoppingCartLink", GetAddToShoppingCartLink) { Comment = "Returns link to \"add to shoppingcart\".", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getAddToShoppingCartLink.AddParameter("productId", typeof(object), "Product ID."); getAddToShoppingCartLink.AddParameter("enabled", typeof(object), "Indicates whether product is enabled or not."); MacroMethods.RegisterMethod(getAddToShoppingCartLink); // Get add to wishlist link MacroMethod getAddToWishListLink = new MacroMethod("GetAddToWishListLink", GetAddToWishListLink) { Comment = "Returns link to add specified product to the user's wishlist.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getAddToWishListLink.AddParameter("productId", typeof(object), "Product ID."); MacroMethods.RegisterMethod(getAddToWishListLink); // Get remove from wishlist link MacroMethod getRemoveFromWishListLink = new MacroMethod("GetRemoveFromWishListLink", GetRemoveFromWishListLink) { Comment = "Returns link to remove specified product from the user's wishlist.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getRemoveFromWishListLink.AddParameter("productId", typeof(object), "Product ID."); MacroMethods.RegisterMethod(getRemoveFromWishListLink); // Get public status name MacroMethod gtPublicStatusName = new MacroMethod("GetPublicStatusName", GetPublicStatusName) { Comment = "Returns the public SKU status display name.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; gtPublicStatusName.AddParameter("statusId", typeof(object), "Status ID"); MacroMethods.RegisterMethod(gtPublicStatusName); // Get shopping cart URL MacroMethod shoppingCartURL = new MacroMethod("ShoppingCartURL", ShoppingCartURL) { Comment = "Returns URL to the shopping cart.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; shoppingCartURL.AddParameter("siteName", typeof(string), "Site name."); MacroMethods.RegisterMethod(shoppingCartURL); // Get wishlist URL MacroMethod wishlistURL = new MacroMethod("WishlistURL", WishlistURL) { Comment = "Returns URL to the wish list.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; wishlistURL.AddParameter("siteName", typeof(string), "Site name"); MacroMethods.RegisterMethod(wishlistURL); // Get product URL MacroMethod getProductUrl = new MacroMethod("GetProductUrl", GetProductUrl) { Comment = "Returns product URL.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getProductUrl.AddParameter("skuId", typeof(object), "SKU ID."); MacroMethods.RegisterMethod(getProductUrl); // Get product URL by GUID MacroMethod getProductUrlByGUID = new MacroMethod("GetProductUrlByGUID", GetProductUrlByGUID) { Comment = "Returns user friendly URL of the specified SKU.", Type = typeof(string), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getProductUrlByGUID.AddParameter("skuGuid", typeof(object), "SKU GUID."); getProductUrlByGUID.AddParameter("skuName", typeof(object), "SKU name."); getProductUrlByGUID.AddParameter("siteName", typeof(object), "Site name."); MacroMethods.RegisterMethod(getProductUrlByGUID); // Get manufacturer MacroMethod getManufacturer = new MacroMethod("GetManufacturer", GetManufacturer) { Comment = "Gets object from the specified column of the manufacturer with specific ID.", Type = typeof(object), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getManufacturer.AddParameter("id", typeof(int), "Manufacturer ID."); getManufacturer.AddParameter("column", typeof(string), "Column name."); MacroMethods.RegisterMethod(getManufacturer); // Get department MacroMethod getDepartment = new MacroMethod("GetDepartment", GetDepartment) { Comment = "Gets object from the specified column of the department with specific ID.", Type = typeof(object), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getDepartment.AddParameter("id", typeof(int), "Department ID."); getDepartment.AddParameter("column", typeof(string), "Column name."); MacroMethods.RegisterMethod(getDepartment); // Get supplier MacroMethod getSupplier = new MacroMethod("GetSupplier", GetSupplier) { Comment = "Gets object from the specified column of the supplier with specific ID.", Type = typeof(object), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getSupplier.AddParameter("id", typeof(int), "Supplier ID."); getSupplier.AddParameter("column", typeof(string), "Column name."); MacroMethods.RegisterMethod(getSupplier); // Get internal status MacroMethod getInternalStatus = new MacroMethod("GetInternalStatus", GetInternalStatus) { Comment = "Gets object from the specified column of the internal status with specific ID.", Type = typeof(object), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getInternalStatus.AddParameter("id", typeof(int), "Internal status ID."); getInternalStatus.AddParameter("column", typeof(string), "Column name."); MacroMethods.RegisterMethod(getInternalStatus); // Get public status MacroMethod getPublicStatus = new MacroMethod("GetPublicStatus", GetPublicStatus) { Comment = "Gets object from the specified column of the public status with specific ID.", Type = typeof(object), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getPublicStatus.AddParameter("id", typeof(int), "Public status ID."); getPublicStatus.AddParameter("column", typeof(string), "Column name."); MacroMethods.RegisterMethod(getPublicStatus); // Get product image MacroMethod getProductImage = new MacroMethod("GetProductImage", GetProductImage) { Comment = "Returns complete HTML code of the specified resized product image, if not such image exists, default image is returned.", Type = typeof(string), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; getProductImage.AddParameter("imageUrl", typeof(object), "Product image url."); getProductImage.AddParameter("alt", typeof(object), "Image alternate text."); getProductImage.AddParameter("maxSideSize", typeof(object), "Max side size of the image."); getProductImage.AddParameter("width", typeof(object), "Width of the image."); getProductImage.AddParameter("height", typeof(object), "Height of the image."); MacroMethods.RegisterMethod(getProductImage); // Format price MacroMethod formatPrice = new MacroMethod("FormatPrice", FormatPrice) { Comment = "Returns price rounded and formatted according to the current currency properties.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; formatPrice.AddParameter("price", typeof(double), "Price to be formatted"); formatPrice.AddParameter("round", typeof(bool), "True - price is rounded according to the current currency settings before formatting"); MacroMethods.RegisterMethod(formatPrice); // Cart items count MacroMethod getShoppingCartItemsCount = new MacroMethod("GetShoppingCartItemsCount", GetShoppingCartItemsCount) { Comment = "Returns number of products in current shopping cart.", Type = typeof(int), MinimumParameters = 0, AllowedTypes = new List <Type>() { typeof(TransformationNamespace) } }; MacroMethods.RegisterMethod(getShoppingCartItemsCount); }
/// <summary> /// Registers all online marketing methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get e-mail domain method MacroMethod getEmailDomain = new MacroMethod("GetEmailDomain", GetEmailDomain) { Comment = "Returns e-mail domain name.", Type = typeof(string), MinimumParameters = 1 }; getEmailDomain.AddParameter("email", typeof(string), "E-mail address."); MacroMethods.RegisterMethod(getEmailDomain); // Get score method MacroMethod getScore = new MacroMethod("GetScore", GetScore) { Comment = "Returns contact's points in specified score on current site.", Type = typeof(int), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; getScore.AddParameter("contact", typeof(object), "Contact info object."); getScore.AddParameter("scoreName", typeof(string), "Name of the score to get contact's points of."); MacroMethods.RegisterMethod(getScore); // Is in contact group method MacroMethod isInContactGroup = new MacroMethod("IsInContactGroup", IsInContactGroup) { Comment = "Returns true if contact is in contact group.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; isInContactGroup.AddParameter("contact", typeof(object), "Contact info object."); isInContactGroup.AddParameter("groupNames", typeof(string), "Name of the contact group(s) separated by semicolon to test whether contact is in."); isInContactGroup.AddParameter("allGroups", typeof(bool), "If true contact has to be in all specified groups, if false, it is sufficient if the contact is in any of the specified groups."); MacroMethods.RegisterMethod(isInContactGroup); // First activity of type method MacroMethod firstActivityOfType = new MacroMethod("FirstActivityOfType", FirstActivityOfType) { Comment = "Returns contact's first activity of specified activity type.", Type = typeof(ActivityInfo), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; firstActivityOfType.AddParameter("contact", typeof(object), "Contact info object."); firstActivityOfType.AddParameter("activityType", typeof(string), "Name of the activity type, optional."); MacroMethods.RegisterMethod(firstActivityOfType); // Last activity of type method MacroMethod lastActivityOfType = new MacroMethod("LastActivityOfType", LastActivityOfType) { Comment = "Returns contact's last activity of specified activity type.", Type = typeof(ActivityInfo), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; lastActivityOfType.AddParameter("contact", typeof(object), "Contact info object."); lastActivityOfType.AddParameter("activityType", typeof(string), "Name of the activity type, optional."); MacroMethods.RegisterMethod(lastActivityOfType); MacroMethod belongsToAccount = new MacroMethod("BelongsToAccount", BelongsToAccount) { Comment = "Returns true if the contact belongs to the specified account.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; belongsToAccount.AddParameter("contact", typeof(object), "Contact info object."); belongsToAccount.AddParameter("accountID", typeof(int), "ID of the account."); MacroMethods.RegisterMethod(belongsToAccount); MacroMethod cameToLandingPage = new MacroMethod("CameToLandingPage", CameToLandingPage) { Comment = "Returns true if the contact came to specified landing page.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; cameToLandingPage.AddParameter("contact", typeof(object), "Contact info object."); cameToLandingPage.AddParameter("page", typeof(string), "Node ID or node alias path of the landing page."); MacroMethods.RegisterMethod(cameToLandingPage); MacroMethod didActivity = new MacroMethod("DidActivity", DidActivity) { Comment = "Returns true if the contact did a specified activity.", Type = typeof(bool), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; didActivity.AddParameter("contact", typeof(object), "Contact info object."); didActivity.AddParameter("activityType", typeof(string), "Name of the activity to check."); didActivity.AddParameter("cancelActivityType", typeof(string), "Name of the activity which cancels the original activity (for example UnsubscribeNewsletter is a cancelling event for SubscribeNewsletter etc.)."); didActivity.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); didActivity.AddParameter("whereCondition", typeof(string), "Additional WHERE condition."); MacroMethods.RegisterMethod(didActivity); MacroMethod didActivities = new MacroMethod("DidActivities", DidActivities) { Comment = "Returns true if the contact did any/all of the specified activities.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; didActivities.AddParameter("contact", typeof(object), "Contact info object."); didActivities.AddParameter("activityTypes", typeof(string), "Name of the activity(ies) to check separated with semicolon."); didActivities.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); didActivities.AddParameter("allActivities", typeof(string), "If true, all specified types has to be found for the method to return true. If false, at least one of any specified types is sufficient to retrun true for the method."); MacroMethods.RegisterMethod(didActivities); MacroMethod isFromCountry = new MacroMethod("IsFromCountry", IsFromCountry) { Comment = "Returns true if the contact's country matches one of the specified countries.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; isFromCountry.AddParameter("contact", typeof(object), "Contact info object."); isFromCountry.AddParameter("countryList", typeof(string), "List of country names separated with semicolon."); MacroMethods.RegisterMethod(isFromCountry); MacroMethod isFromState = new MacroMethod("IsFromState", IsFromState) { Comment = "Returns true if the contact's state matches one of the specified state.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; isFromState.AddParameter("contact", typeof(object), "Contact info object."); isFromState.AddParameter("stateList", typeof(string), "List of state names separated with semicolon."); MacroMethods.RegisterMethod(isFromState); MacroMethod searchedForKeywords = new MacroMethod("SearchedForKeywords", SearchedForKeywords) { Comment = "Returns true if the contact did search for specified keywords in last X days.", Type = typeof(bool), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; searchedForKeywords.AddParameter("contact", typeof(object), "Contact info object."); searchedForKeywords.AddParameter("keywords", typeof(string), "Keywords separated with comma or semicolon (if null or empty, than method returns true iff contact did any search in last X days)."); searchedForKeywords.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); searchedForKeywords.AddParameter("op", typeof(string), "Operator to be used in WHERE condition (use AND for all keywords match, use OR for any keword match)."); MacroMethods.RegisterMethod(searchedForKeywords); MacroMethod spentMoney = new MacroMethod("SpentMoney", SpentMoney) { Comment = "Returns true if the contact spent specified amount of money (counted by order total price in main currency) in last X days.", Type = typeof(bool), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; spentMoney.AddParameter("contact", typeof(object), "Contact info object."); spentMoney.AddParameter("lowerBound", typeof(double), "Inclusive lower bound of the amount of money (in main currency) spent by contact."); spentMoney.AddParameter("upperBound", typeof(double), "Inclusive upper bound of the amount of money (in main currency) spent by contact."); spentMoney.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(spentMoney); MacroMethod purchasedNumberOfProducts = new MacroMethod("PurchasedNumberOfProducts", PurchasedNumberOfProducts) { Comment = "Returns true if the contact purchased specified number of products in last X days.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; purchasedNumberOfProducts.AddParameter("contact", typeof(object), "Contact info object."); purchasedNumberOfProducts.AddParameter("lowerBound", typeof(int), "Inclusive lower bound of the number of products bought."); purchasedNumberOfProducts.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(purchasedNumberOfProducts); MacroMethod isInRoles = new MacroMethod("IsInRoles", IsInRoles) { Comment = "Returns true if the contact is in any/all of the specified roles (i.e. if any of the user assigned to the contact is in any/all specified roles).", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; isInRoles.AddParameter("contact", typeof(object), "Contact info object."); isInRoles.AddParameter("roleNames", typeof(string), "Name of the roles separated with semicolon."); isInRoles.AddParameter("allRoles", typeof(bool), "If true, contact has to in all specified roles. If false, it is sufficient if the contact is at least in one of the roles."); MacroMethods.RegisterMethod(isInRoles); MacroMethod isInCommunityGroup = new MacroMethod("IsInCommunityGroup", IsInCommunityGroup) { Comment = "Returns true if the contact is in any/all of the specified community groups (i.e. if any of the user assigned to the contact is in any/all specified community groups).", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; isInCommunityGroup.AddParameter("contact", typeof(object), "Contact info object."); isInCommunityGroup.AddParameter("groupNames", typeof(string), "Name of the groups separated with semicolon."); isInCommunityGroup.AddParameter("allGroups", typeof(bool), "If true, contact has to in all specified groups. If false, it is sufficient if the contact is at least in one of the groups."); MacroMethods.RegisterMethod(isInCommunityGroup); MacroMethod visitedPage = new MacroMethod("VisitedPage", VisitedPage) { Comment = "Returns true if the contact visited specified page.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; visitedPage.AddParameter("contact", typeof(object), "Contact info object."); visitedPage.AddParameter("nodeAliasPath", typeof(string), "Page node alias path."); visitedPage.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(visitedPage); MacroMethod submittedForm = new MacroMethod("SubmittedForm", SubmittedForm) { Comment = "Returns true if the contact submitted specified form.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; submittedForm.AddParameter("contact", typeof(object), "Contact info object."); submittedForm.AddParameter("formName", typeof(string), "Name of the on-line form."); submittedForm.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(submittedForm); MacroMethod openedNewsletter = new MacroMethod("OpenedNewsletter", OpenedNewsletter) { Comment = "Returns true if the contact opened specified newsletter.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; openedNewsletter.AddParameter("contact", typeof(object), "Contact info object."); openedNewsletter.AddParameter("newsletterName", typeof(string), "Newsletter name"); openedNewsletter.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(openedNewsletter); MacroMethod openedNewsletterIssue = new MacroMethod("OpenedNewsletterIssue", OpenedNewsletterIssue) { Comment = "Returns true if the contact opened specified newsletter issue.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; openedNewsletterIssue.AddParameter("contact", typeof(object), "Contact info object."); openedNewsletterIssue.AddParameter("issueGuid", typeof(Guid), "Newsletter issue GUID."); openedNewsletterIssue.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(openedNewsletterIssue); MacroMethod votedInPoll = new MacroMethod("VotedInPoll", VotedInPoll) { Comment = "Returns true if the contact voted in the poll.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; votedInPoll.AddParameter("contact", typeof(object), "Contact info object."); votedInPoll.AddParameter("pollName", typeof(string), "Poll name."); votedInPoll.AddParameter("pollAnswer", typeof(string), "Poll answer text."); votedInPoll.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(votedInPoll); MacroMethod loggedIn = new MacroMethod("LoggedIn", LoggedIn) { Comment = "Returns true if the contact logged in.", Type = typeof(bool), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; loggedIn.AddParameter("contact", typeof(object), "Contact info object."); loggedIn.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(loggedIn); MacroMethod subscribedToNewsletter = new MacroMethod("SubscribedToNewsletter", SubscribedToNewsletter) { Comment = "Returns true if the contact subscribed for specific newsletter.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; subscribedToNewsletter.AddParameter("contact", typeof(object), "Contact info object."); subscribedToNewsletter.AddParameter("newsletterName", typeof(string), "Newsletter name."); subscribedToNewsletter.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(subscribedToNewsletter); MacroMethod registeredForEvent = new MacroMethod("RegisteredForEvent", RegisteredForEvent) { Comment = "Returns true if the contact registered for specific event.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; registeredForEvent.AddParameter("contact", typeof(object), "Contact info object."); visitedPage.AddParameter("nodeAliasPath", typeof(string), "Page node alias path."); registeredForEvent.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(registeredForEvent); MacroMethod clickedLinkInNewsletter = new MacroMethod("ClickedLinkInNewsletter", ClickedLinkInNewsletter) { Comment = "Returns true if the contact clicked link in specified newsletter.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; clickedLinkInNewsletter.AddParameter("contact", typeof(object), "Contact info object."); clickedLinkInNewsletter.AddParameter("newsletterName", typeof(string), "Name of the newsletter."); clickedLinkInNewsletter.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(clickedLinkInNewsletter); MacroMethod clickedLinkInNewsletterIssue = new MacroMethod("ClickedLinkInNewsletterIssue", ClickedLinkInNewsletterIssue) { Comment = "Returns true if the contact clicked link in specified newsletter issue.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; clickedLinkInNewsletterIssue.AddParameter("contact", typeof(object), "Contact info object."); clickedLinkInNewsletterIssue.AddParameter("issueGuid", typeof(Guid), "Newsletter issue GUID."); clickedLinkInNewsletterIssue.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(clickedLinkInNewsletterIssue); MacroMethod purchasedProduct = new MacroMethod("PurchasedProduct", PurchasedProduct) { Comment = "Returns true if the contact purchased specified product.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(ContactInfo) } }; purchasedProduct.AddParameter("contact", typeof(object), "Contact info object."); purchasedProduct.AddParameter("productName", typeof(string), "Name of the product."); purchasedProduct.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(purchasedProduct); MacroMethod getLastNewsletterIssue = new MacroMethod("GetLastNewsletterIssue", GetLastNewsletterIssue) { Comment = "Returns last newsletter issue that was sent to the contact of the state.", Type = typeof(IssueInfo), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(AutomationStateInfo) } }; getLastNewsletterIssue.AddParameter("state", typeof(AutomationStateInfo), "Process instance to get last newsletter issue from."); MacroMethods.RegisterMethod(getLastNewsletterIssue); MacroMethod linkedToObject = new MacroMethod("LinkedToObject", ActivityLinkedToObject) { Comment = "Returns if activity is linked to given object by GUID or codename.", Type = typeof(bool), MinimumParameters = 3, AllowedTypes = new List<Type>() { typeof(ActivityInfo) } }; linkedToObject.AddParameter("activity", typeof(ActivityInfo), "Activity info object."); linkedToObject.AddParameter("objectType", typeof(string), "Object type."); linkedToObject.AddParameter("objectIdentifier", typeof(string), "Object code name or GUID."); MacroMethods.RegisterMethod(linkedToObject); }
/// <summary> /// Registers all online marketing methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get e-mail domain method MacroMethod getEmailDomain = new MacroMethod("GetEmailDomain", GetEmailDomain) { Comment = "Returns e-mail domain name.", Type = typeof(string), MinimumParameters = 1 }; getEmailDomain.AddParameter("email", typeof(string), "E-mail address."); MacroMethods.RegisterMethod(getEmailDomain); // Get score method MacroMethod getScore = new MacroMethod("GetScore", GetScore) { Comment = "Returns contact's points in specified score on current site.", Type = typeof(int), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; getScore.AddParameter("contact", typeof(object), "Contact info object."); getScore.AddParameter("scoreName", typeof(string), "Name of the score to get contact's points of."); MacroMethods.RegisterMethod(getScore); // Is in contact group method MacroMethod isInContactGroup = new MacroMethod("IsInContactGroup", IsInContactGroup) { Comment = "Returns true if contact is in contact group.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; isInContactGroup.AddParameter("contact", typeof(object), "Contact info object."); isInContactGroup.AddParameter("groupNames", typeof(string), "Name of the contact group(s) separated by semicolon to test whether contact is in."); isInContactGroup.AddParameter("allGroups", typeof(bool), "If true contact has to be in all specified groups, if false, it is sufficient if the contact is in any of the specified groups."); MacroMethods.RegisterMethod(isInContactGroup); // First activity of type method MacroMethod firstActivityOfType = new MacroMethod("FirstActivityOfType", FirstActivityOfType) { Comment = "Returns contact's first activity of specified activity type.", Type = typeof(ActivityInfo), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; firstActivityOfType.AddParameter("contact", typeof(object), "Contact info object."); firstActivityOfType.AddParameter("activityType", typeof(string), "Name of the activity type, optional."); MacroMethods.RegisterMethod(firstActivityOfType); // Last activity of type method MacroMethod lastActivityOfType = new MacroMethod("LastActivityOfType", LastActivityOfType) { Comment = "Returns contact's last activity of specified activity type.", Type = typeof(ActivityInfo), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; lastActivityOfType.AddParameter("contact", typeof(object), "Contact info object."); lastActivityOfType.AddParameter("activityType", typeof(string), "Name of the activity type, optional."); MacroMethods.RegisterMethod(lastActivityOfType); MacroMethod belongsToAccount = new MacroMethod("BelongsToAccount", BelongsToAccount) { Comment = "Returns true if the contact belongs to the specified account.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; belongsToAccount.AddParameter("contact", typeof(object), "Contact info object."); belongsToAccount.AddParameter("accountID", typeof(int), "ID of the account."); MacroMethods.RegisterMethod(belongsToAccount); MacroMethod cameToLandingPage = new MacroMethod("CameToLandingPage", CameToLandingPage) { Comment = "Returns true if the contact came to specified landing page.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; cameToLandingPage.AddParameter("contact", typeof(object), "Contact info object."); cameToLandingPage.AddParameter("page", typeof(string), "Node ID or node alias path of the landing page."); MacroMethods.RegisterMethod(cameToLandingPage); MacroMethod didActivity = new MacroMethod("DidActivity", DidActivity) { Comment = "Returns true if the contact did a specified activity.", Type = typeof(bool), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; didActivity.AddParameter("contact", typeof(object), "Contact info object."); didActivity.AddParameter("activityType", typeof(string), "Name of the activity to check."); didActivity.AddParameter("cancelActivityType", typeof(string), "Name of the activity which cancels the original activity (for example UnsubscribeNewsletter is a cancelling event for SubscribeNewsletter etc.)."); didActivity.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); didActivity.AddParameter("whereCondition", typeof(string), "Additional WHERE condition."); MacroMethods.RegisterMethod(didActivity); MacroMethod didActivities = new MacroMethod("DidActivities", DidActivities) { Comment = "Returns true if the contact did any/all of the specified activities.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; didActivities.AddParameter("contact", typeof(object), "Contact info object."); didActivities.AddParameter("activityTypes", typeof(string), "Name of the activity(ies) to check separated with semicolon."); didActivities.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); didActivities.AddParameter("allActivities", typeof(string), "If true, all specified types has to be found for the method to return true. If false, at least one of any specified types is sufficient to retrun true for the method."); MacroMethods.RegisterMethod(didActivities); MacroMethod isFromCountry = new MacroMethod("IsFromCountry", IsFromCountry) { Comment = "Returns true if the contact's country matches one of the specified countries.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; isFromCountry.AddParameter("contact", typeof(object), "Contact info object."); isFromCountry.AddParameter("countryList", typeof(string), "List of country names separated with semicolon."); MacroMethods.RegisterMethod(isFromCountry); MacroMethod isFromState = new MacroMethod("IsFromState", IsFromState) { Comment = "Returns true if the contact's state matches one of the specified state.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; isFromState.AddParameter("contact", typeof(object), "Contact info object."); isFromState.AddParameter("stateList", typeof(string), "List of state names separated with semicolon."); MacroMethods.RegisterMethod(isFromState); MacroMethod searchedForKeywords = new MacroMethod("SearchedForKeywords", SearchedForKeywords) { Comment = "Returns true if the contact did search for specified keywords in last X days.", Type = typeof(bool), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; searchedForKeywords.AddParameter("contact", typeof(object), "Contact info object."); searchedForKeywords.AddParameter("keywords", typeof(string), "Keywords separated with comma or semicolon (if null or empty, than method returns true iff contact did any search in last X days)."); searchedForKeywords.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); searchedForKeywords.AddParameter("op", typeof(string), "Operator to be used in WHERE condition (use AND for all keywords match, use OR for any keword match)."); MacroMethods.RegisterMethod(searchedForKeywords); MacroMethod spentMoney = new MacroMethod("SpentMoney", SpentMoney) { Comment = "Returns true if the contact spent specified amount of money (counted by order total price in main currency) in last X days.", Type = typeof(bool), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; spentMoney.AddParameter("contact", typeof(object), "Contact info object."); spentMoney.AddParameter("lowerBound", typeof(double), "Inclusive lower bound of the amount of money (in main currency) spent by contact."); spentMoney.AddParameter("upperBound", typeof(double), "Inclusive upper bound of the amount of money (in main currency) spent by contact."); spentMoney.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(spentMoney); MacroMethod purchasedNumberOfProducts = new MacroMethod("PurchasedNumberOfProducts", PurchasedNumberOfProducts) { Comment = "Returns true if the contact purchased specified number of products in last X days.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; purchasedNumberOfProducts.AddParameter("contact", typeof(object), "Contact info object."); purchasedNumberOfProducts.AddParameter("lowerBound", typeof(int), "Inclusive lower bound of the number of products bought."); purchasedNumberOfProducts.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(purchasedNumberOfProducts); MacroMethod isInRoles = new MacroMethod("IsInRoles", IsInRoles) { Comment = "Returns true if the contact is in any/all of the specified roles (i.e. if any of the user assigned to the contact is in any/all specified roles).", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; isInRoles.AddParameter("contact", typeof(object), "Contact info object."); isInRoles.AddParameter("roleNames", typeof(string), "Name of the roles separated with semicolon."); isInRoles.AddParameter("allRoles", typeof(bool), "If true, contact has to in all specified roles. If false, it is sufficient if the contact is at least in one of the roles."); MacroMethods.RegisterMethod(isInRoles); MacroMethod isInCommunityGroup = new MacroMethod("IsInCommunityGroup", IsInCommunityGroup) { Comment = "Returns true if the contact is in any/all of the specified community groups (i.e. if any of the user assigned to the contact is in any/all specified community groups).", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; isInCommunityGroup.AddParameter("contact", typeof(object), "Contact info object."); isInCommunityGroup.AddParameter("groupNames", typeof(string), "Name of the groups separated with semicolon."); isInCommunityGroup.AddParameter("allGroups", typeof(bool), "If true, contact has to in all specified groups. If false, it is sufficient if the contact is at least in one of the groups."); MacroMethods.RegisterMethod(isInCommunityGroup); MacroMethod visitedPage = new MacroMethod("VisitedPage", VisitedPage) { Comment = "Returns true if the contact visited specified page.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; visitedPage.AddParameter("contact", typeof(object), "Contact info object."); visitedPage.AddParameter("nodeAliasPath", typeof(string), "Page node alias path."); visitedPage.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(visitedPage); MacroMethod submittedForm = new MacroMethod("SubmittedForm", SubmittedForm) { Comment = "Returns true if the contact submitted specified form.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; submittedForm.AddParameter("contact", typeof(object), "Contact info object."); submittedForm.AddParameter("formName", typeof(string), "Name of the on-line form."); submittedForm.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(submittedForm); MacroMethod openedNewsletter = new MacroMethod("OpenedNewsletter", OpenedNewsletter) { Comment = "Returns true if the contact opened specified newsletter.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; openedNewsletter.AddParameter("contact", typeof(object), "Contact info object."); openedNewsletter.AddParameter("newsletterName", typeof(string), "Newsletter name"); openedNewsletter.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(openedNewsletter); MacroMethod openedNewsletterIssue = new MacroMethod("OpenedNewsletterIssue", OpenedNewsletterIssue) { Comment = "Returns true if the contact opened specified newsletter issue.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; openedNewsletterIssue.AddParameter("contact", typeof(object), "Contact info object."); openedNewsletterIssue.AddParameter("issueGuid", typeof(Guid), "Newsletter issue GUID."); openedNewsletterIssue.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(openedNewsletterIssue); MacroMethod votedInPoll = new MacroMethod("VotedInPoll", VotedInPoll) { Comment = "Returns true if the contact voted in the poll.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; votedInPoll.AddParameter("contact", typeof(object), "Contact info object."); votedInPoll.AddParameter("pollName", typeof(string), "Poll name."); votedInPoll.AddParameter("pollAnswer", typeof(string), "Poll answer text."); votedInPoll.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(votedInPoll); MacroMethod loggedIn = new MacroMethod("LoggedIn", LoggedIn) { Comment = "Returns true if the contact logged in.", Type = typeof(bool), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; loggedIn.AddParameter("contact", typeof(object), "Contact info object."); loggedIn.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(loggedIn); MacroMethod subscribedToNewsletter = new MacroMethod("SubscribedToNewsletter", SubscribedToNewsletter) { Comment = "Returns true if the contact subscribed for specific newsletter.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; subscribedToNewsletter.AddParameter("contact", typeof(object), "Contact info object."); subscribedToNewsletter.AddParameter("newsletterName", typeof(string), "Newsletter name."); subscribedToNewsletter.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(subscribedToNewsletter); MacroMethod registeredForEvent = new MacroMethod("RegisteredForEvent", RegisteredForEvent) { Comment = "Returns true if the contact registered for specific event.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; registeredForEvent.AddParameter("contact", typeof(object), "Contact info object."); visitedPage.AddParameter("nodeAliasPath", typeof(string), "Page node alias path."); registeredForEvent.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(registeredForEvent); MacroMethod clickedLinkInNewsletter = new MacroMethod("ClickedLinkInNewsletter", ClickedLinkInNewsletter) { Comment = "Returns true if the contact clicked link in specified newsletter.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; clickedLinkInNewsletter.AddParameter("contact", typeof(object), "Contact info object."); clickedLinkInNewsletter.AddParameter("newsletterName", typeof(string), "Name of the newsletter."); clickedLinkInNewsletter.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(clickedLinkInNewsletter); MacroMethod clickedLinkInNewsletterIssue = new MacroMethod("ClickedLinkInNewsletterIssue", ClickedLinkInNewsletterIssue) { Comment = "Returns true if the contact clicked link in specified newsletter issue.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; clickedLinkInNewsletterIssue.AddParameter("contact", typeof(object), "Contact info object."); clickedLinkInNewsletterIssue.AddParameter("issueGuid", typeof(Guid), "Newsletter issue GUID."); clickedLinkInNewsletterIssue.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(clickedLinkInNewsletterIssue); MacroMethod purchasedProduct = new MacroMethod("PurchasedProduct", PurchasedProduct) { Comment = "Returns true if the contact purchased specified product.", Type = typeof(bool), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(ContactInfo) } }; purchasedProduct.AddParameter("contact", typeof(object), "Contact info object."); purchasedProduct.AddParameter("productName", typeof(string), "Name of the product."); purchasedProduct.AddParameter("lastXDays", typeof(int), "Constraint for last X days (if zero or negative value is given, no constraint is applied)."); MacroMethods.RegisterMethod(purchasedProduct); MacroMethod getLastNewsletterIssue = new MacroMethod("GetLastNewsletterIssue", GetLastNewsletterIssue) { Comment = "Returns last newsletter issue that was sent to the contact of the state.", Type = typeof(IssueInfo), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(AutomationStateInfo) } }; getLastNewsletterIssue.AddParameter("state", typeof(AutomationStateInfo), "Process instance to get last newsletter issue from."); MacroMethods.RegisterMethod(getLastNewsletterIssue); MacroMethod linkedToObject = new MacroMethod("LinkedToObject", ActivityLinkedToObject) { Comment = "Returns if activity is linked to given object by GUID or codename.", Type = typeof(bool), MinimumParameters = 3, AllowedTypes = new List <Type>() { typeof(ActivityInfo) } }; linkedToObject.AddParameter("activity", typeof(ActivityInfo), "Activity info object."); linkedToObject.AddParameter("objectType", typeof(string), "Object type."); linkedToObject.AddParameter("objectIdentifier", typeof(string), "Object code name or GUID."); MacroMethods.RegisterMethod(linkedToObject); }
/// <summary> /// Registers all blog methods to macro resolver. /// </summary> public static void RegisterMethods() { // Get user name MacroMethod getUserName = new MacroMethod("GetUserName", GetUserName) { Comment = "Returns user name.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getUserName.AddParameter("userId", typeof(object), "User ID."); MacroMethods.RegisterMethod(getUserName); // Get user full name MacroMethod getUserFullName = new MacroMethod("GetUserFullName", GetUserFullName) { Comment = "Returns user full name.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getUserFullName.AddParameter("userId", typeof(object), "User ID."); MacroMethods.RegisterMethod(getUserFullName); // Get blog comment count MacroMethod getBlogCommentsCount = new MacroMethod("GetBlogCommentsCount", GetBlogCommentsCount) { Comment = "Returns number of comments of given blog.", Type = typeof(int), MinimumParameters = 2, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getBlogCommentsCount.AddParameter("postId", typeof(object), "Post document ID."); getBlogCommentsCount.AddParameter("postAliasPath", typeof(object), "Post alias path."); getBlogCommentsCount.AddParameter("includingTrackbacks", typeof(bool), "Indicates if trackback comments should be included (true by default)."); MacroMethods.RegisterMethod(getBlogCommentsCount); // Get document tags MacroMethod getDocumentTags = new MacroMethod("GetDocumentTags", GetDocumentTags) { Comment = "Gets a list of links of tags assigned for the specific document pointing to the page with URL specified.", Type = typeof(string), MinimumParameters = 3, AllowedTypes = new List<Type>() { typeof(TransformationNamespace) } }; getDocumentTags.AddParameter("documentGroupId", typeof(object), "ID of the group document tags belong to."); getDocumentTags.AddParameter("documentTags", typeof(object), "String containing all the tags related to the document."); getDocumentTags.AddParameter("documentListPageUrl", typeof(string), "URL of the page displaying other documents of the specified tag."); MacroMethods.RegisterMethod(getDocumentTags); }
/// <summary> /// Registers all web analytics methods to macro resolver. /// </summary> public static void RegisterMethods() { MacroMethod isReturningVisitor = new MacroMethod("IsReturningVisitor", IsReturningVisitor) { Comment = "Returns true if current visitor is returning.", Type = typeof(bool), MinimumParameters = 0, AllowedTypes = new List <Type>() { typeof(VisitorNamespace) } }; MacroMethods.RegisterMethod(isReturningVisitor); MacroMethod isFirstTimeVisitor = new MacroMethod("IsFirstTimeVisitor", IsFirstTimeVisitor) { Comment = "Returns true if current visitor comes to the website for the first time.", Type = typeof(bool), MinimumParameters = 0, AllowedTypes = new List <Type>() { typeof(VisitorNamespace) } }; MacroMethods.RegisterMethod(isFirstTimeVisitor); MacroMethod getSearchEngineKeyword = new MacroMethod("GetSearchEngineKeyword", GetSearchEngineKeyword) { Comment = "Returns search keywords from search engine visitor came from.", Type = typeof(string), MinimumParameters = 0, AllowedTypes = new List <Type>() { typeof(VisitorNamespace) } }; MacroMethods.RegisterMethod(getSearchEngineKeyword); MacroMethod getSearchEngine = new MacroMethod("GetSearchEngine", GetSearchEngine) { Comment = "Returns search engine visitor came from.", Type = typeof(string), MinimumParameters = 0, AllowedTypes = new List <Type>() { typeof(VisitorNamespace) } }; MacroMethods.RegisterMethod(getSearchEngine); MacroMethod getUrlReferrer = new MacroMethod("GetUrlReferrer", GetUrlReferrer) { Comment = "Returns absolute URI of the URLRefferer from current HTTP context.", Type = typeof(string), MinimumParameters = 0, AllowedTypes = new List <Type>() { typeof(VisitorNamespace) } }; MacroMethods.RegisterMethod(getUrlReferrer); MacroMethod getUrlReferrerParameter = new MacroMethod("GetUrlReferrerParameter", GetUrlReferrerParameter) { Comment = "Returns value of specified URLReferrer query string parameter.", Type = typeof(string), MinimumParameters = 1, AllowedTypes = new List <Type>() { typeof(VisitorNamespace) } }; getUrlReferrerParameter.AddParameter("parameterName", typeof(string), "Query string parameter name."); MacroMethods.RegisterMethod(getUrlReferrerParameter); MacroMethod getCurrentDistance = new MacroMethod("GetCurrentDistance", GetCurrentDistance) { Comment = "Returns current distance (in kilometers) from specified location (based on Geo IP).", Type = typeof(double), MinimumParameters = 2, AllowedTypes = new List <Type>() { typeof(VisitorNamespace) } }; getCurrentDistance.AddParameter("latitude", typeof(double), "Latitude of the place."); getCurrentDistance.AddParameter("longitude", typeof(double), "Longitude of the place."); MacroMethods.RegisterMethod(getCurrentDistance); }