getPluginReco function
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);
}
}