getPluginReco function

Future getPluginReco(
  1. Node plugin
)

Update Map<String, List

Implementation

Future getPluginReco(Node plugin) async{

  try {
    var recommendationTypeNode = await plugin.getValue('RecommendationType');

    var recommendationType = recommendationTypeNode!.getValue('en')!;
  //print('a$recommendationType');
  var relatedThreatsWeightsNode = await plugin.getValue('relatedThreatsWeights');
  //print('b$relatedThreatsWeightsNode');
  var metricThreats = relatedThreatsWeightsNode!.getValue('en')!.split(';'); //List<String>
  //print('c$lists');
  //var shortNode = await plugin.getValue('short');

  for (var metricNode in metricThreats) {

  ///{'threatUUID,metricValue({'high', 'medium', 'low'})
  ///metric[0] =>  threatUUID
  ///metric[1] =>  metric {'high' or 'medium' or 'low'}
  var metric = metricNode.split(',');
  logger.d('getPluginReco metric =>> $metric');


  var metricRecoUUID = {};
  metricRecoUUID['metric'] = metric[1];
  metricRecoUUID['recoUUID'] = plugin.name;

  //Node impactNormal = NodeImpl(':reco', '');
  //await impactNormal.addValue(NodeValueImpl('impact', metric[1]));
  //await impactNormal.addValue(NodeValueImpl('recuuid', plugin.name));
  //var shortNode = await recoNodeIterator.current.value.getValue('short');
  //await impactNormal.addValue(NodeValueImpl('short', shortNode!.getValue('en')!));
  //var longNode = await plugin.getValue('long');
  //await impactNormal.addValue(NodeValueImpl('long', longNode!.getValue('en')!));


  if (recommendationType == 'device') {
  try {

  if(metric[0].isNotEmpty){
  CoreValues.deviceRecommendation[metric[0]]!.add(metricRecoUUID);
  await updateRecommendationNode(Types.deviceScoreNodePath,Types.recommendations,Types.devices);

  }

  } catch (e) {
  var temp = <Map>[];
  temp.add(metricRecoUUID);
  CoreValues.deviceRecommendation[metric[0]] = temp;
  await updateRecommendationNode(Types.deviceScoreNodePath,Types.recommendations,Types.devices);
  }
  }else {
  try {
  if(metric[0].isNotEmpty){
  CoreValues.userRecommendation[metric[0]]!.add(metricRecoUUID);
  await updateRecommendationNode(Types.userScoreNodePath,Types.recommendations,Types.users);
  }

  } catch (e) {
  var temp = <Map>[];
  temp.add(metricRecoUUID);
  CoreValues.userRecommendation[metric[0]] = temp;
  await updateRecommendationNode(Types.userScoreNodePath,Types.recommendations,Types.users);

  }
  }
  }

  }catch(e)
  {
  logger.e(e);
  }

}