private static MacroExpr GetMacroExpr(string originalExpression, string processedExpression) { var macroExpr = new MacroExpr(); try { // Handle security macroExpr.Expression = MacroSecurityProcessor.RemoveMacroSecurityParams(originalExpression, out macroExpr.SignedBy); macroExpr.SignatureValid = MacroSecurityProcessor.CheckMacroIntegrity(originalExpression, macroExpr.SignedBy); // Parse rule text macroExpr.RuleText = MacroRuleTree.GetRuleText(macroExpr.Expression, true, true); macroExpr.Expression = MacroRuleTree.GetRuleCondition(macroExpr.Expression, true); // Macro expression does not support anonymous signature, remove the flag if (processedExpression.EndsWith("@", StringComparison.Ordinal)) { processedExpression = processedExpression.Substring(0, processedExpression.Length - 1); } // Check syntax MacroExpression.ParseExpression(processedExpression); } catch (Exception ex) { macroExpr.Error = true; macroExpr.ErrorMessage = ex.Message + "\r\n\r\n" + ex.StackTrace; } return(macroExpr); }
/// <summary> /// Gets the macro expression from the given object /// </summary> /// <param name="expression">Expression</param> private static MacroExpr GetMacroExpr(string expression) { var macroExpr = new MacroExpr(); try { // Handle security macroExpr.Expression = MacroSecurityProcessor.RemoveMacroSecurityParams(expression, out macroExpr.SignedBy); macroExpr.SignatureValid = MacroSecurityProcessor.CheckMacroIntegrity(expression, macroExpr.SignedBy); // Parse rule text macroExpr.RuleText = MacroRuleTree.GetRuleText(macroExpr.Expression, true, true); macroExpr.Expression = MacroRuleTree.GetRuleCondition(macroExpr.Expression, true); } catch (Exception ex) { macroExpr.Error = true; macroExpr.ErrorMessage = ex.Message + "\r\n\r\n" + ex.StackTrace; } return(macroExpr); }