/** * @inheritDoc */ public function buildNarrative(Questionnaire $questionnaire) { if (AboutYouIsRedSpecification::isSatisfiedBy($questionnaire)) { $this->buildRedAboutYouNarrative($questionnaire); } elseif (AboutYouIsGreenSpecification::isSatisfiedBy($questionnaire)) { $this->buildGreenAboutYouNarrative($questionnaire); } else { $this->buildAmberAboutYouNarrative($questionnaire); } return $this->narrative; }
/** * @param Questionnaire $questionnaire */ protected function buildOverviewParagraph(Questionnaire $questionnaire) { switch (true) { case AboutYouIsGreenSpecification::isSatisfiedBy($questionnaire): $rag = RagScore::RAG_GREEN; break; case AboutYouIsRedSpecification::isSatisfiedBy($questionnaire): $rag = RagScore::RAG_RED; break; case AboutYouFeelingsAreAllZeroSpecification::isSatisfiedBy($questionnaire): $rag = RagScore::RAG_AMBER . '_neutral'; break; default: $rag = RagScore::RAG_AMBER . '_mixed'; } $overview = sprintf("score_about_you_%s_total_%s", $rag, $questionnaire->getRagScore()['rag']); $this->narrative->addMessages(self::SECTION_NAME, array('overview' => $overview)); }