getListOfVotes function

Future<List<ScrutinFromJson>> getListOfVotes({
  1. required Directory mainDirectory,
})

Get the Scrutin JSON files in designated directory and convert to ScrutinFromJson:

mainDirectory is the required Directory where Open Data ZIP was extracted. You can use App Support directory for instance.

Implementation

Future<List<ScrutinFromJson>> getListOfVotes(
    {required Directory mainDirectory}) async {
  List<ScrutinFromJson> _listToReturn = [];
  Directory theDirectory = Directory(
      mainDirectory.path + votesDirectory + jsonIntermediaryDirectory);
  List<FileSystemEntity> _initialListOfFiles =
      await theDirectory.list(recursive: true).toList();
  for (FileSystemEntity file in _initialListOfFiles) {
    if (file.path.split("/").last.substring(0, 1) != ".") {
      // to exclude any system file

      File _theFile = File(file.path);
      dynamic response = await _theFile.readAsString();

      if (response != null) {
        Map<String, dynamic> _map = json.decode(response);
        ScrutinFromJson _toReturn =
            ScrutinFromJson.fromFrenchNationalAssemblyJson(_map);
        _listToReturn.add(_toReturn);
      }
    }
  }
  return _listToReturn;
}