예제 #1
0
    public async Task SyncData()
    {
        // Hasher.Clear(DataLocations.DataPath);
        IoHelpers.PurgeDirectory(DataLocations.MapsPath);
        IoHelpers.PurgeDirectory(DataLocations.TempPath);

        await PartyScraper.Run();

        await Get2016();
        await Get2019();

        File.Copy(DataLocations.Australia2019JsonPath, DataLocations.FutureAustraliaJsonPath);
        await StatesToCountryDownloader.RunFuture();

        await ProcessYear(DataLocations.Maps2016Path, electorates2016);
        await ProcessYear(DataLocations.Maps2019Path, electorates2019);
        await ProcessYear(DataLocations.MapsFuturePath, electoratesFuture);

        var electorates = await WriteElectoratesMetaData();

        IoHelpers.PurgeDirectoryRecursive(DataLocations.MapsDetail);
        foreach (var electorate in electorates)
        {
            var targetPath = Path.Combine(DataLocations.MapsDetail, $"{electorate.ShortName}.pdf");
            await Downloader.DownloadFile(targetPath, electorate.MapUrl);
        }

        foreach (var file in Directory.EnumerateFiles(DataLocations.MapsDetail))
        {
            var pngPath = await PdfToPng.Convert(file);

            File.Delete(file);

            CreatePortraitAndLandscape(pngPath);
        }

        WriteNamedCs(electorates);
        Export.ExportElectorates();
        // await Hasher.Create(DataLocations.DataPath);
        Zipper.ZipDir(DataLocations.MapsCuratedZipPath, DataLocations.MapsCuratedPath);
    }
예제 #2
0
    public static void ExportElectorates()
    {
        IoHelpers.PurgeDirectoryRecursive(DataLocations.MapsCuratedPath);
        foreach (var sourceYear in Directory.EnumerateDirectories(DataLocations.MapsPath))
        {
            var targetYear = Path.Combine(DataLocations.MapsCuratedPath, Path.GetFileName(sourceYear));
            Directory.CreateDirectory(targetYear);
            foreach (var fileInfo in FileInfos(sourceYear, stateSize))
            {
                var destFileName = Path.Combine(targetYear, $"{Prefix(fileInfo.FullName)}.geojson");
                fileInfo.CopyTo(destFileName, true);
            }

            var sourceElectorates = Path.Combine(sourceYear, "Electorates");
            var targetElectorates = Path.Combine(targetYear, "Electorates");
            Directory.CreateDirectory(targetElectorates);
            foreach (var fileInfo in FileInfos(sourceElectorates, electoratesSize))
            {
                var destFileName = Path.Combine(targetElectorates, $"{Prefix(fileInfo.FullName)}.geojson");
                fileInfo.CopyTo(destFileName, true);
            }
        }
    }