crtTotalThreatScore function

Future crtTotalThreatScore(
  1. dynamic type
)

Implementation

Future crtTotalThreatScore(var type) async {
  var sumNumerator = 0.0;
  var sumDenominator = 0.0;
  var threatScore = {};

  type == Types.devices
      ? threatScore = CoreValues.deviceThreatScore
      : threatScore = CoreValues.userThreatScore;

  for (String threatUUID in CoreValues.uuidThreats) {
    //here loop threat by threat
    var rpts = await riskMetrics(threatUUID);
    for (var rpt in rpts) {
      sumNumerator += threatScore[threatUUID] * rpt;
      sumDenominator += rpt;
    }
  }

  var gspUser = sumNumerator / sumDenominator;

  Node scoreNums = NodeImpl('', '');
  await scoreNums.addValue(NodeValueImpl('score', gspUser.toString()));
  await scoreNums.addValue(NodeValueImpl(
      'nums',
      (CoreValues.userPositive.length + CoreValues.userNegative.length)
          .toString()));
  CoreValues.aggregate.add(scoreNums);

  return gspUser.toString();
}