From bd1eb9d09b791baf1802b146ee789574d675f20a Mon Sep 17 00:00:00 2001 From: tschumpr Date: Tue, 7 May 2024 09:33:32 +0200 Subject: [PATCH 1/2] Rename attributes --- .../Processors/NutzungsflaechenProcessorTest.cs | 10 +++++----- Geodatenbezug/Processors/NutzungsflaechenProcessor.cs | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Geodatenbezug.Test/Processors/NutzungsflaechenProcessorTest.cs b/Geodatenbezug.Test/Processors/NutzungsflaechenProcessorTest.cs index ff2126d..309ea49 100644 --- a/Geodatenbezug.Test/Processors/NutzungsflaechenProcessorTest.cs +++ b/Geodatenbezug.Test/Processors/NutzungsflaechenProcessorTest.cs @@ -110,20 +110,20 @@ public async Task RunGdalProcessingAsync() "bewirtschaftungsgrad", "flaeche_m2", "kanton", - "ist_bff_qi", + "bff_qualitaet_1", "hauptkategorie_de", "hauptkategorie_fr", "hauptkategorie_it", "nutzung_de", "nutzung_fr", "nutzung_it", - "bewe_betriebsnummer", + "betriebsnummer", }; GdalAssert.AssertLayerFields(resultLayer, expectedLayerFields); GdalAssert.AssertFieldType(resultLayer, "t_id", FieldType.OFTInteger); GdalAssert.AssertFieldType(resultLayer, "bezugsjahr", FieldType.OFTDateTime); - GdalAssert.AssertFieldType(resultLayer, "ist_bff_qi", FieldType.OFTInteger, FieldSubType.OFSTInt16); + GdalAssert.AssertFieldType(resultLayer, "bff_qualitaet_1", FieldType.OFTInteger, FieldSubType.OFSTInt16); GdalAssert.AssertOnlyValidLnfCodes(resultLayer); @@ -142,14 +142,14 @@ public async Task RunGdalProcessingAsync() Assert.AreEqual(firstInputFeature.GetFieldAsInteger("bewirtschaftungsgrad"), firstResultFeature.GetFieldAsInteger("bewirtschaftungsgrad")); Assert.AreEqual(firstInputFeature.GetFieldAsInteger("flaeche_m2"), firstResultFeature.GetFieldAsInteger("flaeche_m2")); Assert.AreEqual(firstInputFeature.GetFieldAsString("kanton"), firstResultFeature.GetFieldAsString("kanton")); - Assert.AreEqual(0, firstResultFeature.GetFieldAsInteger("ist_bff_qi")); + Assert.AreEqual(0, firstResultFeature.GetFieldAsInteger("bff_qualitaet_1")); Assert.AreEqual("Ackerfläche", firstResultFeature.GetFieldAsString("hauptkategorie_de")); Assert.AreEqual("Terres cultivées", firstResultFeature.GetFieldAsString("hauptkategorie_fr")); Assert.AreEqual("Superficie coltiva", firstResultFeature.GetFieldAsString("hauptkategorie_it")); Assert.AreEqual("Sommergerste", firstResultFeature.GetFieldAsString("nutzung_de")); Assert.AreEqual("Orge de printemps", firstResultFeature.GetFieldAsString("nutzung_fr")); Assert.AreEqual("Orzo primaverile", firstResultFeature.GetFieldAsString("nutzung_it")); - Assert.AreEqual("NE65020007", firstResultFeature.GetFieldAsString("bewe_betriebsnummer")); + Assert.AreEqual("NE65020007", firstResultFeature.GetFieldAsString("betriebsnummer")); GdalAssert.AssertGeometry(firstInputFeature, firstResultFeature); } } diff --git a/Geodatenbezug/Processors/NutzungsflaechenProcessor.cs b/Geodatenbezug/Processors/NutzungsflaechenProcessor.cs index 1d6b8ab..8df7863 100644 --- a/Geodatenbezug/Processors/NutzungsflaechenProcessor.cs +++ b/Geodatenbezug/Processors/NutzungsflaechenProcessor.cs @@ -1,4 +1,4 @@ -using System.Xml; +using System.Xml; using System.Xml.Serialization; using Geodatenbezug.Models; using Microsoft.Extensions.Logging; @@ -129,9 +129,9 @@ protected async override Task ProcessTopicAsync() fieldName = originalFieldName.Replace($"{NutzungsartLayerName}_", string.Empty, StringComparison.InvariantCulture); } - if (originalFieldName == $"{BewirtschaftungseinheitLayerName}_{BetriebsnummerFieldName}") + if (originalFieldName.Contains(BewirtschaftungseinheitLayerName, StringComparison.InvariantCulture)) { - fieldName = "bewe_betriebsnummer"; + fieldName = originalFieldName.Replace($"{BewirtschaftungseinheitLayerName}_", string.Empty, StringComparison.InvariantCulture); } fieldNameMapping[fieldName] = originalFieldName; @@ -215,7 +215,7 @@ private async Task CreateNutzungsartLayerAsync() using var lnfCode = new FieldDefn(LnfCodeFieldName, FieldType.OFTInteger); nutzungsartLayer.CreateField(lnfCode, 1); - var istBffQiName = "ist_bff_qi"; + var istBffQiName = "bff_qualitaet_1"; using var istBffQi = new FieldDefn(istBffQiName, FieldType.OFTInteger); istBffQi.SetSubType(FieldSubType.OFSTInt16); nutzungsartLayer.CreateField(istBffQi, 1); From f7108c11703f788265b6e80ffe73c6c11af329c0 Mon Sep 17 00:00:00 2001 From: tschumpr Date: Tue, 7 May 2024 09:44:41 +0200 Subject: [PATCH 2/2] Simplify code --- .../Processors/NutzungsflaechenProcessor.cs | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/Geodatenbezug/Processors/NutzungsflaechenProcessor.cs b/Geodatenbezug/Processors/NutzungsflaechenProcessor.cs index 8df7863..ef07779 100644 --- a/Geodatenbezug/Processors/NutzungsflaechenProcessor.cs +++ b/Geodatenbezug/Processors/NutzungsflaechenProcessor.cs @@ -1,4 +1,4 @@ -using System.Xml; +using System.Xml; using System.Xml.Serialization; using Geodatenbezug.Models; using Microsoft.Extensions.Logging; @@ -110,30 +110,14 @@ protected async override Task ProcessTopicAsync() { var fieldDefn = nutzungsflaechenJoinedLayer.GetLayerDefn().GetFieldDefn(i); var originalFieldName = fieldDefn.GetName(); - string fieldName = originalFieldName; // Drop the fields that where only needed for the join - if (originalFieldName == $"{NutzungsartLayerName}_lnf_code" || originalFieldName == $"{NutzungsflaechenLayerName}_identifikator_be") + if (originalFieldName == $"{NutzungsartLayerName}_{LnfCodeFieldName}" || originalFieldName == $"{NutzungsflaechenLayerName}_{IdentifikatorBeFieldName}") { continue; } - // Rename the fields to remove the layer name prefix - if (originalFieldName.Contains(NutzungsflaechenLayerName, StringComparison.InvariantCulture)) - { - fieldName = originalFieldName.Replace($"{NutzungsflaechenLayerName}_", string.Empty, StringComparison.InvariantCulture); - } - - if (originalFieldName.Contains(NutzungsartLayerName, StringComparison.InvariantCulture)) - { - fieldName = originalFieldName.Replace($"{NutzungsartLayerName}_", string.Empty, StringComparison.InvariantCulture); - } - - if (originalFieldName.Contains(BewirtschaftungseinheitLayerName, StringComparison.InvariantCulture)) - { - fieldName = originalFieldName.Replace($"{BewirtschaftungseinheitLayerName}_", string.Empty, StringComparison.InvariantCulture); - } - + var fieldName = RemoveLayerPrefix(originalFieldName); fieldNameMapping[fieldName] = originalFieldName; // Booleans are represented as an Int16 FieldSubTypes, so we have to apply the subtype to the field definition if it's available @@ -338,4 +322,17 @@ private async Task> GetLnfKatalogNutzungsartAsync() throw new InvalidOperationException("Deserialization failed or returned null."); } } + + private string RemoveLayerPrefix(string originalFieldName) + { + foreach (var layerName in new[] { NutzungsflaechenLayerName, NutzungsartLayerName, BewirtschaftungseinheitLayerName }) + { + if (originalFieldName.Contains(layerName, StringComparison.Ordinal)) + { + return originalFieldName.Replace($"{layerName}_", string.Empty, StringComparison.Ordinal); + } + } + + return originalFieldName; + } }