/**
  * Retrieve the cultures from the database and transform the object list into
  * an associative array of following structure:
  * 
  * array(
  *    "xx-XX" => (array of F_culture_extension object),
  *    "yy-YY" => (array of F_culture_extension object),
  *    ...
  * )
  * 
  * @return associative array the array of culture
  */
 public function GetCultureArray()
 {
     $dal = $this->dal->getDalInstance();
     $dbFilters = new \Puzzlout\Framework\Dal\DbQueryFilters();
     $dbFilters->setOrderByFilters(array(\Puzzlout\Framework\BO\F_culture_extension::F_CULTURE_ID));
     $cultureObjects = $dal->selectMany(new \Puzzlout\Framework\BO\F_culture_extension(), $dbFilters);
     $cultureAssocArray = array(\Puzzlout\Framework\BO\F_culture_extension::FullArrayCultureKey => null);
     if (count($cultureObjects) > 0) {
         foreach ($cultureObjects as $cultureObj) {
             $cultureAssocArray[\Puzzlout\Framework\BO\F_culture_extension::FullArrayCultureKey][$cultureObj->F_culture_language() . '-' . $cultureObj->F_culture_region()] = \Puzzlout\Framework\Helpers\CommonHelper::CleanPrefixedkeyInAssocArray((array) $cultureObj);
         }
     }
     return $cultureAssocArray[\Puzzlout\Framework\BO\F_culture_extension::FullArrayCultureKey];
 }
 /**
  * 
  * //For Controller Resources
  *    "en" => array(
  *      "module1" => array(
  *        "common" => array(
  *          "key1" => "value1",
  *          ...
  *          "keyN" => "valueN"
  *        ),
  *        "action1" => array(
  *          "key1" => "value1",
  *          ...
  *          "keyN" => "valueN"
  *        ),
  *        "action2" => array(
  *          "key1" => "value1",
  *          ...
  *          "keyN" => "valueN"
  *        ),
  *      ),
  *      "module2" => array(
  *        "action3" => array(
  *          "key1" => "value1",
  *          ...
  *          "keyN" => "valueN"
  *        ),
  *        "action4" => array(
  *          "key1" => "value1",
  *          ...
  *          "keyN" => "valueN"
  *        ),
  *      ),
  *    ),
  *    ... repeat for other languages ...
  * );
  * 
  * @param array(of Puzzlout\Framework\BO\F_controller_resource) $resources the objects to loop through
  */
 private function OrganizeControllerResources($resources)
 {
     $assocArray = array(self::CONTROLLER_RESX_ARRAY_KEY);
     foreach ($resources as $resourceObj) {
         $cleanArray = \Puzzlout\Framework\Helpers\CommonHelper::CleanPrefixedkeyInAssocArray((array) $resourceObj);
         if (isset($assocArray[self::COMMON_RESX_ARRAY_KEY][$cleanArray[F_controller_resource::F_CONTROLLER_RESOURCE_MODULE]][$resourceObj->f_culture_id()][$cleanArray[F_controller_resource::F_CONTROLLER_RESOURCE_ACTION]][$cleanArray[F_controller_resource::F_CONTROLLER_RESOURCE_KEY]])) {
             $assocArray[self::CONTROLLER_RESX_ARRAY_KEY][$cleanArray[F_controller_resource::F_CONTROLLER_RESOURCE_MODULE]][$resourceObj->f_culture_id()][$cleanArray[F_controller_resource::F_CONTROLLER_RESOURCE_ACTION]][$cleanArray[F_controller_resource::F_CONTROLLER_RESOURCE_KEY]] = array(\Puzzlout\Framework\BO\F_controller_resource::F_CONTROLLER_RESOURCE_VALUE => $cleanArray[F_controller_resource::F_CONTROLLER_RESOURCE_VALUE], \Puzzlout\Framework\BO\F_controller_resource::F_CONTROLLER_RESOURCE_COMMENT => $cleanArray[F_controller_resource::F_CONTROLLER_RESOURCE_COMMENT]);
         } else {
             $assocArray[self::CONTROLLER_RESX_ARRAY_KEY][$cleanArray[F_controller_resource::F_CONTROLLER_RESOURCE_MODULE]][$cleanArray[\Puzzlout\Framework\BO\F_common_resource::F_CULTURE_ID]][$cleanArray[F_controller_resource::F_CONTROLLER_RESOURCE_ACTION]][$cleanArray[F_controller_resource::F_CONTROLLER_RESOURCE_KEY]] = array(\Puzzlout\Framework\BO\F_controller_resource::F_CONTROLLER_RESOURCE_VALUE => $cleanArray[F_controller_resource::F_CONTROLLER_RESOURCE_VALUE], \Puzzlout\Framework\BO\F_controller_resource::F_CONTROLLER_RESOURCE_COMMENT => $cleanArray[F_controller_resource::F_CONTROLLER_RESOURCE_COMMENT]);
         }
     }
     $this->ControllerResources = $assocArray[self::CONTROLLER_RESX_ARRAY_KEY];
 }