getCurrentScore function

Future getCurrentScore()

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