setGlobalRecommendationsNode method

Future<void> setGlobalRecommendationsNode({
  1. Locale? language,
  2. required List<Threat> relatedThreat,
  3. required List<Recommendations> recommendations,
})

set all recommendations in Global:recommendations node.

@param optional language locale object @Param list of recommendation object

Implementation

// Future<void> setGlobalRecommendationsNode(
//     {Locale? language,
//     required List<Threat> relatedThreat,
//     required List<Recommendations> recommendations}) async {
//   Node? recomIdNode;
//   NodeValue? nodeValue1;
//   NodeValue? nodeValue2;
//   NodeValue? nodeValue3;
//   NodeValue? nodeValue4;
//
//   Node _node;
//   try {
//     _node = await _storageController.get(":Global:recommendations");
//   } catch (e, s) {
//     _node = NodeImpl(":Global:recommendations", "owner");
//     _storageController.addOrUpdate(_node);
//   }
//
//   for (Recommendations recommendation in recommendations) {
//     try {
//       recomIdNode = await _storageController
//           .get(':Global:recommendations:${recommendation.recommendationId}');
//       if (language != null) {
//         nodeValue1 = await recomIdNode.getValue("relatedThreat");
//         nodeValue1!.setValue(Threat.convertToJson(relatedThreat), language);
//         nodeValue2 = await recomIdNode.getValue("recommendationType");
//         nodeValue2!.setValue(recommendation.recommendationType!, language);
//         nodeValue3 = await recomIdNode.getValue("short");
//         nodeValue3!
//             .setValue(recommendation.description.shortDescription, language);
//         nodeValue4 = await recomIdNode.getValue("long");
//         nodeValue4!
//             .setValue(recommendation.description.longDescription!, language);
//       }
//     } on StorageException {
//       recomIdNode = NodeImpl(
//           ":Global:recommendations:${recommendation.recommendationId}",
//           "owner");
//
//       nodeValue1 =
//           NodeValueImpl("relatedThreat", Threat.convertToJson(relatedThreat));
//
//       nodeValue2 = NodeValueImpl(
//           "recommendationType", recommendation.recommendationType!);
//
//       nodeValue3 =
//           NodeValueImpl("short", recommendation.description.shortDescription);
//
//       nodeValue4 =
//           NodeValueImpl("long", recommendation.description.longDescription!);
//     }
//     await recomIdNode.addOrUpdateValue(nodeValue1!);
//     await recomIdNode.addOrUpdateValue(nodeValue2!);
//
//     await recomIdNode.addOrUpdateValue(nodeValue3!);
//
//     await recomIdNode.addOrUpdateValue(nodeValue4!);
//     await _storageController.addOrUpdate(recomIdNode);
//   }
//
//   print(recomIdNode);
// }

Future<void> setGlobalRecommendationsNode(
    {Locale? language,
    required List<Threat> relatedThreat,
    required List<Recommendations> recommendations}) async {
  try {
    for (Recommendations recommendation in recommendations) {
      _node = await _storageController
          .get(':Global:recommendations:${recommendation.recommendationId}');

      //create a NodeValue
      _setThreatsNodeValue(language, recommendation, relatedThreat);
      //empty threats to avoid duplications
    }
  } on StorageException {
    //log(":Global:threats not found");
    Node recommendationsNode = NodeImpl(":Global:recommendations", "owner");
    await _storageController.addOrUpdate(recommendationsNode);

    for (Recommendations recommendation in recommendations) {
      Node recomIdNode = NodeImpl(
          ":Global:recommendations:${recommendation.recommendationId}",
          "owner");
      //create :Global:threats:$threatId
      await _storageController.addOrUpdate(recomIdNode);
      //create a NodeValue
      _setThreatsNodeValueException(
          language, recommendation, recomIdNode, relatedThreat);
      //empty threats to avoid duplications

    }
  }
}