diff --git a/projects/aca-shared/src/lib/services/app.extension.service.spec.ts b/projects/aca-shared/src/lib/services/app.extension.service.spec.ts
index 6fcfa38de..5e50afe31 100644
--- a/projects/aca-shared/src/lib/services/app.extension.service.spec.ts
+++ b/projects/aca-shared/src/lib/services/app.extension.service.spec.ts
@@ -1087,6 +1087,16 @@ describe('AppExtensionService', () => {
       expect(service.evaluateRule('rule1')).toBeTrue();
     });
 
+    it('should evaluate list of rules', () => {
+      extensions.setEvaluators({
+        rule1: () => true,
+        rule2: () => true,
+        rule3: () => true
+      });
+
+      expect(service.evaluateRule(['rule1', 'rule2', 'rule3'])).toBeTrue();
+    });
+
     it('should not evaluate missing rule and return [false] by default', () => {
       expect(service.evaluateRule('missing')).toBeFalse();
     });
diff --git a/projects/aca-shared/src/lib/services/app.extension.service.ts b/projects/aca-shared/src/lib/services/app.extension.service.ts
index ab1781395..7c02d789a 100644
--- a/projects/aca-shared/src/lib/services/app.extension.service.ts
+++ b/projects/aca-shared/src/lib/services/app.extension.service.ts
@@ -532,11 +532,18 @@ export class AppExtensionService implements RuleContext {
   }
 
   // todo: move to ADF/RuleService
-  evaluateRule(ruleId: string, ...args: any[]): boolean {
-    const evaluator = this.getEvaluator(ruleId);
-
-    if (evaluator) {
-      return evaluator(this, ...args);
+  evaluateRule(ruleId: string | string[], ...args: any[]): boolean {
+    let evaluatorList: RuleEvaluator[] = [];
+    if (Array.isArray(ruleId)) {
+      evaluatorList = ruleId.filter((rule) => !!this.getEvaluator(rule)).map((rule) => this.getEvaluator(rule));
+    } else {
+      const evaluator = this.getEvaluator(ruleId);
+      if (evaluator) {
+        evaluatorList.push(evaluator);
+      }
+    }
+    if (evaluatorList?.length > 0) {
+      return evaluatorList.every((evaluator) => evaluator(this, ...args));
     }
 
     return false;