public static IEnumerable <ExtractFile> CreateParcelFiles(ExtractContext context)
        {
            var extractItems = context
                               .ParcelExtract
                               .AsNoTracking();

            var parcelProjectionState = context
                                        .ProjectionStates
                                        .AsNoTracking()
                                        .Single(m => m.Name == typeof(ParcelExtractProjections).FullName);
            var extractMetadata = new Dictionary <string, string>
            {
                { ExtractMetadataKeys.LatestEventId, parcelProjectionState.Position.ToString() }
            };

            yield return(ExtractBuilder.CreateDbfFile <ParcelDbaseRecord>(
                             ExtractController.ZipName,
                             new ParcelDbaseSchema(),
                             extractItems.OrderBy(m => m.CaPaKey).Select(org => org.DbaseRecord),
                             extractItems.Count));

            yield return(ExtractBuilder.CreateMetadataDbfFile(
                             ExtractController.ZipName,
                             extractMetadata));
        }
 public IActionResult Get(
     [FromServices] ExtractContext context,
     CancellationToken cancellationToken) =>
 new IsolationExtractArchive($"{ZipName}-{DateTime.Now:yyyy-MM-dd}", context)
 {
     PostalRegistryExtractBuilder.CreatePostalFiles(context)
 }
 .CreateFileCallbackResult(cancellationToken);
Beispiel #3
0
 public IActionResult Get(
     [FromServices] ExtractContext context,
     CancellationToken cancellationToken = default) =>
 new ExtractArchive($"{ZipName}-{DateTime.Now:yyyy-MM-dd}")
 {
     ParcelRegistryExtractBuilder.CreateParcelFile(context)
 }
 .CreateFileCallbackResult(cancellationToken);
        public static ExtractFile CreateStreetNameFile(ExtractContext context, SyndicationContext syndicationContext)
        {
            var extractItems = context
                               .StreetNameExtract
                               .AsNoTracking()
                               .Where(x => x.Complete)
                               .OrderBy(x => x.StreetNamePersistentLocalId);

            var cachedMunicipalities = syndicationContext.MunicipalityLatestItems.AsNoTracking().ToList();

            byte[] TransformRecord(StreetNameExtractItem r)
            {
                var item = new StreetNameDbaseRecord();

                item.FromBytes(r.DbaseRecord, DbfFileWriter <StreetNameDbaseRecord> .Encoding);

                var municipality = cachedMunicipalities.First(x => x.NisCode == item.gemeenteid.Value);

                switch (municipality.PrimaryLanguage)
                {
                case null:
                default:
                    item.straatnm.Value   = r.NameUnknown;
                    item.homoniemtv.Value = r.HomonymUnknown ?? string.Empty;
                    break;

                case Taal.NL:
                    item.straatnm.Value   = r.NameDutch;
                    item.homoniemtv.Value = r.HomonymDutch ?? string.Empty;
                    break;

                case Taal.FR:
                    item.straatnm.Value   = r.NameFrench;
                    item.homoniemtv.Value = r.HomonymFrench ?? string.Empty;
                    break;

                case Taal.DE:
                    item.straatnm.Value   = r.NameGerman;
                    item.homoniemtv.Value = r.HomonymGerman ?? string.Empty;
                    break;

                case Taal.EN:
                    item.straatnm.Value   = r.NameEnglish;
                    item.homoniemtv.Value = r.HomonymEnglish ?? string.Empty;
                    break;
                }

                return(item.ToBytes(DbfFileWriter <StreetNameDbaseRecord> .Encoding));
            }

            return(ExtractBuilder.CreateDbfFile <StreetNameExtractItem, StreetNameDbaseRecord>(
                       ExtractController.ZipName,
                       new StreetNameDbaseSchema(),
                       extractItems,
                       extractItems.Count,
                       TransformRecord));
        }
 public IActionResult Get(
     [FromServices] ExtractContext context,
     [FromServices] SyndicationContext syndicationContext,
     CancellationToken cancellationToken = default) =>
 new ExtractArchive(ExtractFileNames.GetAddressZip())
 {
     AddressRegistryExtractBuilder.CreateAddressFiles(context, syndicationContext),
     AddressCrabHouseNumberIdExtractBuilder.CreateAddressCrabHouseNumberIdFile(context),
     AddressCrabSubaddressIdExtractBuilder.CreateAddressSubaddressIdFile(context)
 }
 .CreateFileCallbackResult(cancellationToken);
        public static ExtractFile CreateParcelFile(ExtractContext context)
        {
            var extractItems = context
                               .ParcelExtract
                               .AsNoTracking();

            return(ExtractBuilder.CreateDbfFile <ParcelDbaseRecord>(
                       ExtractController.ZipName,
                       new ParcelDbaseSchema(),
                       extractItems.OrderBy(m => m.CaPaKey).Select(org => org.DbaseRecord),
                       extractItems.Count));
        }
Beispiel #7
0
        public static ExtractFile CreatePostalFile(ExtractContext context)
        {
            var extractItems = context
                               .PostalInformationExtract
                               .AsNoTracking();

            return(ExtractBuilder.CreateDbfFile <PostalDbaseRecord>(
                       ExtractController.ZipName,
                       new PostalDbaseSchema(),
                       extractItems.OrderBy(x => x.PostalCode).Select(org => org.DbaseRecord),
                       extractItems.Count));
        }
        public static ExtractFile CreateMunicipalityFile(ExtractContext context)
        {
            var extractItems = context
                               .MunicipalityExtract
                               .OrderBy(x => x.NisCode)
                               .AsNoTracking();

            return(ExtractBuilder.CreateDbfFile <MunicipalityDbaseRecord>(
                       ExtractController.ZipName,
                       new MunicipalityDbaseSchema(),
                       extractItems.OrderBy(x => x.NisCode).Select(org => org.DbaseRecord),
                       extractItems.Count));
        }
        public static ExtractFile CreateAddressSubaddressIdFile(ExtractContext context)
        {
            var extractItems = context
                               .AddressCrabSubaddressIdExtract
                               .AsNoTracking()
                               .Where(m => m.CrabSubaddressId.HasValue && m.PersistentLocalId.HasValue)
                               .OrderBy(m => m.PersistentLocalId);

            return(ExtractBuilder.CreateDbfFile <AddressCrabSubaddressIdDbaseRecord>(
                       ExtractFileNames.CrabSubadresId,
                       new AddressCrabSubaddressIdDbaseSchema(),
                       extractItems.Select(x => x.DbaseRecord),
                       extractItems.Count));
        }
Beispiel #10
0
        public static async Task <MunicipalityExtractItem> FindAndUpdateMunicipalityExtract(
            this ExtractContext context,
            Guid municipalityId,
            Action <MunicipalityExtractItem> updateFunc,
            CancellationToken ct)
        {
            var municipality = await context
                               .MunicipalityExtract
                               .FindAsync(municipalityId, cancellationToken : ct);

            if (municipality == null)
            {
                throw DatabaseItemNotFound(municipalityId);
            }

            updateFunc(municipality);

            return(municipality);
        }
        public static async Task <PostalInformationExtractItem> FindAndUpdatePostalInformationExtract(
            this ExtractContext context,
            string postalCode,
            Action <PostalInformationExtractItem> updateFunc,
            CancellationToken ct)
        {
            var postalInformation = await context
                                    .PostalInformationExtract
                                    .FindAsync(postalCode, cancellationToken : ct);

            if (postalInformation == null)
            {
                throw DatabaseItemNotFound(postalCode);
            }

            updateFunc(postalInformation);

            return(postalInformation);
        }
Beispiel #12
0
        public static async Task <ParcelExtractItem> FindAndUpdateParcelExtract(
            this ExtractContext context,
            Guid parcelId,
            Action <ParcelExtractItem> updateFunc,
            CancellationToken ct)
        {
            var parcel = await context
                         .ParcelExtract
                         .FindAsync(parcelId, cancellationToken : ct);

            if (parcel == null)
            {
                throw DatabaseItemNotFound(parcelId);
            }

            updateFunc(parcel);

            return(parcel);
        }
        public static async Task <StreetNameExtractItem> FindAndUpdateStreetNameExtract(
            this ExtractContext context,
            Guid streetNameId,
            Action <StreetNameExtractItem> updateFunc,
            CancellationToken ct)
        {
            var streetName = await context
                             .StreetNameExtract
                             .FindAsync(streetNameId, cancellationToken : ct);

            if (streetName == null)
            {
                throw DatabaseItemNotFound(streetNameId);
            }

            updateFunc(streetName);

            return(streetName);
        }
 public IActionResult Get(
     [FromServices] ExtractContext context,
     [FromServices] UseExtractV2Toggle useExtractV2Toggle,
     [FromServices] SyndicationContext syndicationContext,
     CancellationToken cancellationToken = default)
 {
     if (useExtractV2Toggle.FeatureEnabled)
     {
         return(new IsolationExtractArchive($"{ZipName}-{DateTime.Now:yyyy-MM-dd}", context)
         {
             StreetNameRegistryExtractBuilder.CreateStreetNameFilesV2(context, syndicationContext)
         }
                .CreateFileCallbackResult(cancellationToken));
     }
     return(new IsolationExtractArchive($"{ZipName}-{DateTime.Now:yyyy-MM-dd}", context)
     {
         StreetNameRegistryExtractBuilder.CreateStreetNameFiles(context, syndicationContext)
     }
            .CreateFileCallbackResult(cancellationToken));
 }
        // Only use in staging
        public static IEnumerable <ExtractFile> CreateStreetNameFilesV2(ExtractContext context,
                                                                        SyndicationContext syndicationContext)
        {
            var extractItems = context
                               .StreetNameExtractV2
                               .AsNoTracking()
                               .Where(x => x.Complete)
                               .OrderBy(x => x.StreetNamePersistentLocalId);

            var streetNameProjectionState = context
                                            .ProjectionStates
                                            .AsNoTracking()
                                            .Single(m => m.Name == typeof(StreetNameExtractProjectionsV2).FullName);
            var extractMetadata = new Dictionary <string, string>
            {
                { ExtractMetadataKeys.LatestEventId, streetNameProjectionState.Position.ToString() }
            };

            var cachedMunicipalities = syndicationContext.MunicipalityLatestItems.AsNoTracking().ToList();

            byte[] TransformRecord(StreetNameExtractItemV2 r)
            {
                var item = new StreetNameDbaseRecord();

                item.FromBytes(r.DbaseRecord, DbfFileWriter <StreetNameDbaseRecord> .Encoding);

                var municipality = cachedMunicipalities.First(x => x.NisCode == item.gemeenteid.Value);

                switch (municipality.PrimaryLanguage)
                {
                case Taal.NL:
                    item.straatnm.Value   = r.NameDutch;
                    item.homoniemtv.Value = r.HomonymDutch ?? string.Empty;
                    break;

                case Taal.FR:
                    item.straatnm.Value   = r.NameFrench;
                    item.homoniemtv.Value = r.HomonymFrench ?? string.Empty;
                    break;

                case Taal.DE:
                    item.straatnm.Value   = r.NameGerman;
                    item.homoniemtv.Value = r.HomonymGerman ?? string.Empty;
                    break;

                case Taal.EN:
                    item.straatnm.Value   = r.NameEnglish;
                    item.homoniemtv.Value = r.HomonymEnglish ?? string.Empty;
                    break;
                }

                return(item.ToBytes(DbfFileWriter <StreetNameDbaseRecord> .Encoding));
            }

            yield return(ExtractBuilder.CreateDbfFile <StreetNameExtractItemV2, StreetNameDbaseRecord>(
                             ExtractController.ZipName,
                             new StreetNameDbaseSchema(),
                             extractItems,
                             extractItems.Count,
                             TransformRecord));

            yield return(ExtractBuilder.CreateMetadataDbfFile(
                             ExtractController.ZipName,
                             extractMetadata));
        }
        public static IEnumerable <ExtractFile> CreateAddressFiles(ExtractContext context, SyndicationContext syndicationContext)
        {
            var extractItems = context
                               .AddressExtract
                               .AsNoTracking()
                               .Where(m => m.Complete)
                               .OrderBy(m => m.AddressPersistentLocalId);

            var cachedMunicipalities = syndicationContext.MunicipalityLatestItems.AsNoTracking().ToList();
            var cachedStreetNames    = syndicationContext.StreetNameLatestItems.AsNoTracking().ToList();

            byte[] TransformRecord(AddressExtractItem r)
            {
                var item = new AddressDbaseRecord();

                item.FromBytes(r.DbaseRecord, DbfFileWriter <AddressDbaseRecord> .Encoding);

                // update streetname, municipality
                var streetName   = cachedStreetNames.First(x => x.StreetNameId == r.StreetNameId);
                var municipality = cachedMunicipalities.First(x => x.NisCode == streetName.NisCode);

                item.straatnmid.Value = streetName.PersistentLocalId;

                switch (municipality.PrimaryLanguage)
                {
                case null:
                case Taal.NL:
                default:
                    item.gemeentenm.Value = municipality.NameDutch;
                    item.straatnm.Value   = streetName.NameDutch;
                    break;

                case Taal.FR:
                    item.gemeentenm.Value = municipality.NameFrench;
                    item.straatnm.Value   = streetName.NameFrench;
                    break;

                case Taal.DE:
                    item.gemeentenm.Value = municipality.NameGerman;
                    item.straatnm.Value   = streetName.NameGerman;
                    break;

                case Taal.EN:
                    item.gemeentenm.Value = municipality.NameEnglish;
                    item.straatnm.Value   = streetName.NameEnglish;
                    break;
                }

                return(item.ToBytes(DbfFileWriter <AddressDbaseRecord> .Encoding));
            }

            yield return(ExtractBuilder.CreateDbfFile <AddressExtractItem, AddressDbaseRecord>(
                             ExtractFileNames.Address,
                             new AddressDbaseSchema(),
                             extractItems,
                             extractItems.Count,
                             TransformRecord));

            var boundingBox = new BoundingBox3D(
                extractItems.Where(x => x.MinimumX > 0).Min(record => record.MinimumX),
                extractItems.Where(x => x.MinimumY > 0).Min(record => record.MinimumY),
                extractItems.Where(x => x.MaximumX > 0).Max(record => record.MaximumX),
                extractItems.Where(x => x.MaximumY > 0).Max(record => record.MaximumY),
                0,
                0,
                double.NegativeInfinity,
                double.PositiveInfinity);

            yield return(ExtractBuilder.CreateShapeFile <PointShapeContent>(
                             ExtractFileNames.Address,
                             ShapeType.Point,
                             extractItems.Select(x => x.ShapeRecordContent),
                             ShapeContent.Read,
                             extractItems.Select(x => x.ShapeRecordContentLength),
                             boundingBox));

            yield return(ExtractBuilder.CreateShapeIndexFile(
                             ExtractFileNames.Address,
                             ShapeType.Point,
                             extractItems.Select(x => x.ShapeRecordContentLength),
                             extractItems.Count,
                             boundingBox));

            yield return(ExtractBuilder.CreateProjectedCoordinateSystemFile(
                             ExtractFileNames.Address,
                             ProjectedCoordinateSystem.Belge_Lambert_1972));
        }
 public TransactionRepository(ExtractContext context)
     : base(context)
 {
 }
Beispiel #18
0
 public DataBankRepository(ExtractContext context)
     : base(context)
 {
 }
Beispiel #19
0
 public Repository(ExtractContext context)
 {
     Db    = context;
     DbSet = Db.Set <TEntity>();
 }
 public UnitOfWork(ExtractContext context)
 {
     _context = context;
 }