/// <summary>
    /// Returns true if contact came to specified landing page.
    /// </summary>
    /// <param name="parameters">Contact; Node ID or alias path of the page</param>
    public static object CameToLandingPage(params object[] parameters)
    {
        switch (parameters.Length)
        {
        case 2:
            int    nodeId  = ValidationHelper.GetInteger(parameters[1], 0);
            string nodeIds = null;
            if (nodeId <= 0)
            {
                string alias = ValidationHelper.GetString(parameters[1], "");
                if (!string.IsNullOrEmpty(alias))
                {
                    TreeNodeDataSet ds = new TreeProvider().SelectNodes(TreeProvider.ALL_SITES, alias, TreeProvider.ALL_CULTURES, true);
                    if (!DataHelper.DataSourceIsEmpty(ds))
                    {
                        nodeIds = TextHelper.Join(",", SystemDataHelper.GetStringValues(ds.Tables[0], "NodeID"));
                    }
                }
            }

            if (nodeId > 0)
            {
                return(OnlineMarketingFunctions.DidActivity(parameters[0], "landingpage", null, 0, "ActivityNodeID = " + nodeId));
            }
            else if (!string.IsNullOrEmpty(nodeIds))
            {
                return(OnlineMarketingFunctions.DidActivity(parameters[0], "landingpage", null, 0, "ActivityNodeID IN (" + nodeIds + ")"));
            }
            return(false);

        default:
            throw new NotSupportedException();
        }
    }
    /// <summary>
    /// Returns true if contact belongs to specified account.
    /// </summary>
    /// <param name="parameters">
    /// Contact the activities of which should be checked;
    /// Name of the activity to check;
    /// Name of the activity which cancels the original activity (for example UnsubscribeNewsletter is a cancelling event for SubscribeNewsletter etc.);
    /// Constraint for last X days (if zero or negative value is given, no constraint is applied);
    /// Additional WHERE condition;
    /// </param>
    public static object DidActivity(params object[] parameters)
    {
        switch (parameters.Length)
        {
        case 1:
            return(OnlineMarketingFunctions.DidActivity(parameters[0], null, null, 0, null));

        case 2:
            return(OnlineMarketingFunctions.DidActivity(parameters[0], ValidationHelper.GetString(parameters[1], ""), null, 0, null));

        case 3:
            return(OnlineMarketingFunctions.DidActivity(parameters[0], ValidationHelper.GetString(parameters[1], ""), ValidationHelper.GetString(parameters[2], ""), 0, null));

        case 4:
            return(OnlineMarketingFunctions.DidActivity(parameters[0], ValidationHelper.GetString(parameters[1], ""), ValidationHelper.GetString(parameters[2], ""), ValidationHelper.GetInteger(parameters[3], 0), null));

        case 5:
            return(OnlineMarketingFunctions.DidActivity(parameters[0], ValidationHelper.GetString(parameters[1], ""), ValidationHelper.GetString(parameters[2], ""), ValidationHelper.GetInteger(parameters[3], 0), ValidationHelper.GetString(parameters[4], "")));

        default:
            throw new NotSupportedException();
        }
    }