getRecommendation function

Future getRecommendation()

Implementation

Future getRecommendation() async {
  try {
    var recommendationNode =
        await Storage.controller!.get(':Global:Recommendations');

    var getChildren = await recommendationNode.getChildren();

    var recoNodeIterator = getChildren.entries.iterator;

    while (recoNodeIterator.moveNext()) {
      var recommendationTypeNode =
          await recoNodeIterator.current.value.getValue('RecommendationType');

      var recommendationType = recommendationTypeNode!.getValue('en')!;

      var relatedThreatsWeightsNode = await recoNodeIterator.current.value
          .getValue('relatedThreatsWeights');
      var lists =
          relatedThreatsWeightsNode!.getValue('en')!.split(';'); //List<String>

      for (var node in lists) {
        var relatedThreatsWeights = node.split(',');

        Node impactNormal = NodeImpl('', '');
        await impactNormal
            .addValue(NodeValueImpl('impact', relatedThreatsWeights[1]));
        await impactNormal
            .addValue(NodeValueImpl('recuuid', recoNodeIterator.current.key));
        var shortNode = await recoNodeIterator.current.value.getValue('short');
        await impactNormal
            .addValue(NodeValueImpl('short', shortNode!.getValue('en')!));

        //RecommendationType == types.Devices ? coreValues.deviceRecommendation[relatedThreatsWeights[0]]!.add(impactNormal) : coreValues.userRecommendation[relatedThreatsWeights[0]]!.add(impactNormal);

        if (recommendationType == Types.devices.toLowerCase()) {
          try {
            CoreValues.deviceRecommendation[relatedThreatsWeights[0]]!
                .add(impactNormal);
          } catch (e) {
            var temp = <Node>[];
            temp.add(impactNormal);
            CoreValues.deviceRecommendation[relatedThreatsWeights[0]] = temp;
          }
        } else {
          try {
            CoreValues.userRecommendation[relatedThreatsWeights[0]]!
                .add(impactNormal);
          } catch (e) {
            var temp = <Node>[];
            temp.add(impactNormal);
            CoreValues.userRecommendation[relatedThreatsWeights[0]] = temp;
          }
        }
      }
    }
  } catch (e) {
    // ignore: avoid_print
    print(e);
    return;
  }
}