getListOfAmendements function
Get the Amendements JSON files in designated directory and convert to AmendementFromJson:
• mainDirectory
is the required Directory where Open Data ZIP was extracted. You can use App Support directory for instance.
Implementation
Future<List<AmendementFromJson>> getListOfAmendements(
{required Directory mainDirectory}) async {
List<AmendementFromJson> _listToReturn = [];
Directory theDirectory = Directory(
mainDirectory.path + amendementsDirectory + jsonIntermediaryDirectory);
List<FileSystemEntity> _initialListOfFiles =
await theDirectory.list(recursive: true).toList();
for (FileSystemEntity entityLevelOne in _initialListOfFiles) {
if (entityLevelOne.path.split("/").last.substring(0, 1) != ".") {
// to exclude any system file
///
///
/// LIST OF DOSSIERS LEGISLATIFS
///
///
if (entityLevelOne is Directory) {
List<FileSystemEntity> _listOfDossiers =
await entityLevelOne.list(recursive: true).toList();
for (FileSystemEntity entityLevelTwo in _listOfDossiers) {
if (entityLevelTwo.path.split("/").last.substring(0, 1) != ".") {
// to exclude any system file
///
///
/// LIST OF PROJETS LOIS
///
///
if (entityLevelTwo is Directory) {
List<FileSystemEntity> _listOfProjets =
await entityLevelTwo.list(recursive: true).toList();
for (FileSystemEntity entityLevelThree in _listOfProjets) {
if (entityLevelThree.path.split("/").last.substring(0, 1) !=
".") {
// to exclude any system file
///
///
/// LIST OF AMENDEMENTS
///
///
File _theFile = File(entityLevelThree.path);
dynamic response = await _theFile.readAsString();
if (response != null) {
Map<String, dynamic> _map = json.decode(response);
AmendementFromJson _toReturn =
AmendementFromJson.fromFrenchNationalAssemblyJson(_map);
_listToReturn.add(_toReturn);
}
}
}
}
}
}
}
}
}
return _listToReturn;
}