getRecommendation function
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(':in', '');
await impactNormal
.addOrUpdateValue(NodeValueImpl('impact', relatedThreatsWeights[1]));
await impactNormal
.addOrUpdateValue(NodeValueImpl('recuuid', recoNodeIterator.current.key));
var shortNode = await recoNodeIterator.current.value.getValue('short');
await impactNormal
.addOrUpdateValue(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;
}
}
}
}
} on StorageException {
print("':Global:Recommendations' doesn't exist in storage'===========");
print("Waiting ':Global:Recommendations'===========");
// registerListener(Listener.recoGlobal,':Global:threats');
//
// try{
// List<Event> e = await Listener.recoGlobal.getNumEvents(1,5);
// print("Length of the Event ${e.length}");
// if (e.length > 0) {
// getRecommendation();
// }
// } catch(e){
// print(e);
// }
} catch (e) {
// ignore: avoid_print
print(e);
return;
}
}