getCurrentScore function
Get current device scores GEIGER Score => Risk Score number of metrics => How many metric data used on calculation threats score => risk score each threat (e.g, Phishing, Malware etc.)
Implementation
Future getCurrentScore() async{
try{
///Get current Device Risk Score
var deviceScoreNode = await Storage.controller.get(':Devices:${Storage.deviceUUID}:' +Storage.geigerIndicatorUUID +':data:GeigerScoreDevice');
var deviceScore = await deviceScoreNode.getValue('GEIGER_score');
var strdeviceScore = deviceScore!.getValue('en');
var deviceNum = await deviceScoreNode.getValue('number_metrics');
var strdeviceNum = deviceNum!.getValue('en');
var deviceThrests = await deviceScoreNode.getValue('threats_score');
var strDeviceThreats = deviceThrests!.getValue('en');
///Get current User Risk Score
var userScoreNode = await Storage.controller.get(':Users:${Storage.userUUID}:' +Storage.geigerIndicatorUUID +':data:GeigerScoreUser');
var userScore = await userScoreNode.getValue('GEIGER_score');
var strUserScore = userScore!.getValue('en');
var userNum = await userScoreNode.getValue('number_metrics');
var strUserNum = userNum!.getValue('en');
var userThrests = await userScoreNode.getValue('threats_score');
var strUserThreats = userThrests!.getValue('en');
///Split each threat risk value => 'threat UUID,50'
var deviceList = strDeviceThreats!.split(';');
var userList = strUserThreats!.split(';');
///Makes an threat risk value list
///In GEIGER project, threat is 12
///This will be calculate threat risk value each threat uuid
var currentList = [];
currentList.add(deviceList);
currentList.add(userList);
///Makes Map {Risk Score: Number of Metric}
///this store at global value 'CoreValues.aggregate'
var tempMap = {};
tempMap[strdeviceScore] = strdeviceNum;
CoreValues.aggregate.add(tempMap);
tempMap = {};
tempMap[strUserScore] = strUserNum;
CoreValues.aggregate.add(tempMap);
return currentList;
}catch(e){
logger.e(e);
}
}