getJsonIndividualVotes method

Future<List<IndividualVotes>> getJsonIndividualVotes(
  1. ScrutinFromJson scrutin,
  2. bool? hiliteFronde
)

Inside the ScrutinFromJson, reorder the Groups and INdividual Votes for Assembly display

Implementation

Future<List<IndividualVotes>> getJsonIndividualVotes(
    ScrutinFromJson scrutin, bool? hiliteFronde) async {
  List<IndividualVotes> votesList = [];

  if (scrutin.groupVotesDetails != null) {
    // print("—————national_assembly_france_hemicycle————— ••••• STEP 4");
    if (scrutin.groupVotesDetails!.length > 0) {
      // print("—————national_assembly_france_hemicycle————— ••••• STEP 5");
      List<GroupVotesFromJson> _reorder = scrutin.groupVotesDetails!;
      _reorder.sort();

      int indexIncrement = 0;
      for (var i = 0; i < _reorder.length; i++) {
        if (_reorder[i].individualVotesDetails != null) {
          // print("—————national_assembly_france_hemicycle————— ••••• STEP 6 @ " + i.toString());
          if (_reorder[i].individualVotesDetails!.length > 0) {
            // print("—————national_assembly_france_hemicycle————— ••••• STEP 7");
            int groupIncrement = 0;
            int groupNumber = _reorder[i].nbMembers ?? 0;

            for (var j = 0;
                j < _reorder[i].individualVotesDetails!.length;
                j++) {
              indexIncrement += 1;
              groupIncrement += 1;
              IndividualVoteFromJson element =
                  _reorder[i].individualVotesDetails![j];
              votesList.add(IndividualVotes(indexIncrement,
                  voteResult: element.votedFor ?? false
                      ? true
                      : element.votedAgainst ?? false
                          ? false
                          : element.votedAbstention ?? false
                              ? null
                              : element.didNotVote ?? false
                                  ? null
                                  : null,
                  groupPairing: _reorder[i].organeRef));
            }

            if (groupNumber > groupIncrement) {
              for (var z = 0; z < groupNumber - groupIncrement; z++) {
                indexIncrement += 1;
                if (hiliteFronde ?? false) {
                  votesList.add(IndividualVotes(indexIncrement,
                      voteResult: null, groupPairing: _reorder[i].organeRef));
                }
              }
            }
/*
            print("groupNumber = " +
                groupNumber.toString() +
                " / groupIncrement = " +
                groupIncrement.toString() +
                " /// indexIncrement = " +
                indexIncrement.toString());
*/
          }
        }
      }
    }
  }
  return votesList;
  // print("—————national_assembly_france_hemicycle————— ••••• getJsonScrutin OVER");
}