예제 #1
0
        private static object[] GetWebBasedSample(string legalRessource)
        {
            var qs         = new RdfBasedLegalDocumentLoader().Load(legalRessource);
            var docType    = qs.GetDocType();
            var components = legalRessource.Split('/');
            var number     = int.Parse(components.Last());
            var year       = int.Parse(components[components.Length - 2]);
            var target     = new TargetDocument(new Uri($"{legalRessource}/xml"), docType, year, number);

            return(new object[] { target, qs.GetChangeDocuments(), XDocument.Load($"{qs.GetLaterConsolidationUri()}/xml") });
        }
        public async Task HarvestCompleteSample(string legalRessource, DirectoryInfo targetDir)
        {
            var qs             = new RdfBasedLegalDocumentLoader().Load(legalRessource);
            var sampleFileName = GetLegalResourceFilename(legalRessource, qs);

            var client = new WebClient();

            await DownloadFileAsync(targetDir, client, sampleFileName, new Uri($"{legalRessource}/xml"));

            foreach (var changeDocument in qs.GetChangeDocuments())
            {
                var ressource      = changeDocument.LegalRessource.ToString();
                var rdfQuerySource = GetRdfQuerySource(ressource);
                var fileName       = GetLegalResourceFilename(ressource, rdfQuerySource);
                await DownloadFileAsync(targetDir, client, fileName, changeDocument.LegalExpressionXmlFormatUri);
            }
            var targetConsolidation = qs.GetLaterConsolidationUri();

            await DownloadFileAsync(targetDir, client,
                                    GetLegalResourceFilename(targetConsolidation, GetRdfQuerySource(targetConsolidation)), new Uri($"{targetConsolidation}/xml"));
        }