getExistScoreNodes function
Check exist geiger score nodes if it does not exist to create node
Implementation
Future getExistScoreNodes(var path, var nodeName, var type) async {
var strPath = '$path$nodeName';
try {
var node = await Storage.controller.get(strPath);
///Check exist metrics (implemented recommendations)
if (nodeName == Types.geigerScoreUser || nodeName == Types.geigerScoreDevice) {
try {
var temp = await node.getValue('implementedRecommendations');
var iReco = temp!.getValue('en').toString().trim();
var list = iReco.split(',');
logger.d('implementedRecommendations >> $list');
if(list.isNotEmpty && list.toString() != '[]') {
for(String uuid in list){
type == Types.users ? CoreValues.uuidUserImplementedRecommendations.add(uuid) : CoreValues.uuidDeviceImplementedRecommendations.add(uuid);
await getImplementedRecommendations(uuid);
}
logger.d('length of $type implementedRecommendations >> ${type == Types.users ? CoreValues.uuidUserImplementedRecommendations.length : CoreValues.uuidDeviceImplementedRecommendations.length}');
}
}catch (e){
logger.e(e.toString());
}
}
} on StorageException{
logger.i('Stare to create a $nodeName Node, it does not exist');
///create geiger score node
///this is only created by indicator
if (nodeName == Types.geigerScoreUser || nodeName == Types.geigerScoreDevice || nodeName == Types.geigerScoreAggregate) {
await createScoreNode(path, nodeName,type);
} else if (nodeName == Types.geigerScoreMSE) {
await createScoreMSENode(path, nodeName);
} else if (nodeName == Types.recommendations) {
await createRecommendationNode(path,nodeName);
}
}
catch (e) {
logger.e(e.toString());
}
}