public RecordInstantie(RecordDefinitie definitie, VektisData data) { Definitie = definitie; Data = data; foreach (var velddefinitie in Definitie.Velddefinities) { dynamic waarde = null; if (velddefinitie.Naam == "kenmerk_record") { waarde = Definitie.Recordcode; } else if (velddefinitie.Naam == "identificatie_detailrecord") { waarde = VeldWaarde.TIJDELIJK; // Krijgt later een waarde } else if (data.HasMethod(velddefinitie.Naam)) { waarde = data.Call(velddefinitie.Naam); } else { waarde = data.Veld(velddefinitie); } AddVeldWaarde(velddefinitie.Naam, new VeldWaarde(velddefinitie, waarde)); } }
protected string GenereerClassBroncode(RecordDefinitie recorddefinitie, string srcNamespace, string dataClass) { var regels = new List <string>(); regels.Add("using System;"); if (srcNamespace != "Vektis") { regels.Add("using Vektis;"); } regels.Add(""); regels.Add($"namespace {srcNamespace} {{"); var classname = ClassnameFromRecordtype(recorddefinitie.Recordtype); regels.Add($"\tpublic class {classname}: VektisData {{"); regels.Add($"\t\tpublic {classname}(dynamic item = null) {{"); regels.Add($"\t\t\tItem = item;"); regels.Add("\t\t}"); foreach (VeldDefinitie d in recorddefinitie.Velddefinities) { regels.Add("\t\t/// <summary>"); foreach (var regel in d.Beschrijving.Splits(95)) { regels.Add($"\t\t/// {regel}"); } regels.Add("\t\t/// </summary>"); var dt = d.CSharpDatatype(); var ret = "\"\""; if (dt == "int") { ret = "0"; } regels.Add($"\t\tpublic {dt} {d.Naam}() {{"); regels.Add($"\t\t\treturn {ret};"); regels.Add("\t\t}"); } regels.Add("\t}"); regels.Add("}"); return(String.Join("\r\n", regels)); }
public void LaadSpecificatie() { System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); var skipSheets = 0; var skipRows = 0; var colspec = Config.Colspec; var bestandsnaam = GetBestandsnaam(); using (var stream = File.Open(bestandsnaam, FileMode.Open, FileAccess.Read)) { using (var reader = ExcelReaderFactory.CreateReader(stream)) { // Ga naar de juiste sheet while (skipSheets < Config.Sheet) { reader.NextResult(); skipSheets++; } while (reader.Read()) { // Ga naar de juiste rij if (skipRows < Config.StartRow) { skipRows++; continue; } var recordtype = reader.GetString(colspec[VektisConfig.RECORDTYPE]); if (recordtype == null || recordtype == "") { break; } var recordcode = reader.GetString(colspec[VektisConfig.RECORDCODE]); var recordlengte = Convert.ToInt32(reader.GetDouble(colspec[VektisConfig.LENGTE])); var recorddefinitie = GetRecordefinitie(recordtype); if (recorddefinitie == null) { recorddefinitie = new RecordDefinitie { Recordtype = recordtype, Recordcode = recordcode }; Recorddefinities[recordtype] = recorddefinitie; } var eindpos = 0; if (colspec[VektisConfig.EINDPOSITIE] >= 0) { eindpos = Convert.ToInt32(reader.GetDouble(colspec[VektisConfig.EINDPOSITIE])); } else { eindpos = Convert.ToInt32(reader.GetDouble(colspec[VektisConfig.BEGINPOSITIE])) + recordlengte - 1; } recorddefinitie.Velddefinities.Add( new VeldDefinitie { Volgnummer = Convert.ToInt32(reader.GetDouble(colspec[VektisConfig.VOLGNUMMER])), Naam = reader.GetString(colspec[VektisConfig.NAAM]), Veldtype = reader.GetString(colspec[VektisConfig.VELDTYPE]), Lengte = Convert.ToInt32(reader.GetDouble(colspec[VektisConfig.LENGTE])), Verplichting = reader.GetString(colspec[VektisConfig.VERPLICHTING]), Eindpositie = eindpos, Patroon = reader.GetString(colspec[VektisConfig.PATROON]), Beschrijving = reader.GetString(colspec[VektisConfig.BESCHRIJVING]) } ); } } } }