static async Task Main(string[] args) { Settings settings = null; CultureInfo.CurrentCulture = CultureInfo.InvariantCulture; try { Console.WriteLine("Lese Einstellungen aus Settings.json ..."); string settingsJson = File.ReadAllText("Settings.json"); settings = JsonConvert.DeserializeObject <Settings>(settingsJson); } catch (Exception) { Console.WriteLine("Auf Settings.json konnte nicht zugegriffen werden."); return; } try { string baseUrl = settings.BaseUrl ?? "http://localhost:8500"; Console.WriteLine($"Stelle Verbindung zu {baseUrl} her ..."); var client = new NevarisBuildClient(baseUrl); var speicherorte = await client.StammApi.GetSpeicherorte(); var speicherort = speicherorte.FirstOrDefault(s => s.Bezeichnung == settings.SpeicherortBezeichnung) ?? throw new InvalidOperationException($"Speicherort '{settings.SpeicherortBezeichnung}' nicht gefunden"); speicherort = await client.StammApi.GetSpeicherort(speicherort.Id); var projektInfo = speicherort.ProjektInfos.FirstOrDefault(p => p.Nummer == settings.ProjektNummer && p.Bezeichnung == settings.ProjektBezeichnung) ?? throw new InvalidOperationException($"Projekt '{settings.ProjektNummer} – {settings.ProjektBezeichnung}' nicht gefunden"); var projekt = await client.ProjektApi.GetProjekt(projektInfo.Id); foreach (var lv in projekt.Leistungsverzeichnisse) { if (lv.Art == LvArt.AuftragErhalten || lv.Art == LvArt.AuftragErteilt) { await VerarbeiteAuftrag(client.ProjektApi, projekt, lv); } } } catch (Exception ex) { Console.WriteLine($"Fehler: {ex.Message}"); } Console.WriteLine("Zum Beenden bitte eine Taste drücken ..."); Console.ReadKey(intercept: true); }
static async Task Main(string[] args) { Settings settings = null; try { Console.WriteLine("Lese Einstellungen aus Settings.json ..."); string settingsJson = File.ReadAllText("Settings.json"); settings = JsonConvert.DeserializeObject <Settings>(settingsJson); } catch (Exception ex) { Console.WriteLine($"Auf Settings.json konnte nicht zugegriffen werden ({ex.GetType().Name}). Es werden Default-Werte angenommen."); } try { string baseUrl = settings?.BaseUrl ?? "http://localhost:8500"; string nameTestAdresse = settings?.AdressName ?? "API-Testadresse"; Console.WriteLine($"Stelle Verbindung zu {baseUrl} her ..."); var client = new NevarisBuildClient(baseUrl); // Alle Adressen laden Console.WriteLine("Lade Adressen ..."); var adressen = await client.StammApi.GetAdressen(); Console.WriteLine($"{adressen.Count} Adressen geladen."); // Einzelne Adresse heraussuchen und gegenenfalls neu anlegen Console.WriteLine($"Suche Adresse mit Namen '{nameTestAdresse}' ..."); var testAdresse = adressen.FirstOrDefault(a => a.Name == nameTestAdresse); if (testAdresse == null) { Console.WriteLine("Adresse nicht gefunden. Lege neue Adresse an."); testAdresse = await client.StammApi.CreateAdresse(new NewAdresseInfo { AdressArt = AdressArt.Organisation }); testAdresse.Name = nameTestAdresse; // Namen zuweisen await client.StammApi.UpdateAdresse(testAdresse.Code, testAdresse); // und geänderte Adresse speichern Console.WriteLine($"Adresse mit Code {testAdresse.Code} angelegt."); } else { Console.WriteLine($"Adresse gefunden (Code = {testAdresse.Code})."); // Die Adresse vollständig laden. (Der Aufruf client.StammApi.GetAdressen lädt nämlich nur // die Basiseigenschaften, d.h. ohne Detailinfos wie Bankverbindungen, Adressaten usw.) Console.WriteLine($"Lade vollständige Adresse mit Code = {testAdresse.Code} ..."); testAdresse = await client.StammApi.GetAdresse(testAdresse.Code); } // Ändere einige Eigenschaften Console.WriteLine("Ändere einige Eigenschaften der Adresse ..."); testAdresse.Beschreibung = "Dies ist eine Beispieladresse"; testAdresse.GültigAb = DateTime.Now; if (testAdresse.Bankverbindungen.Count == 0) { testAdresse.Bankverbindungen.Add(new Bankverbindung { Bankname = "Berliner Sparkasse", Iban = "DE19123412341234123412", Bic = "BELADEBEXXX" }); } // Speichere die geänderte Adresse Console.WriteLine("Aktualisiere Adresse in NEVARIS Build ..."); await client.StammApi.UpdateAdresse(testAdresse.Code, testAdresse); Console.WriteLine("Aktualisierung erfolgreich."); } catch (Exception ex) { Console.WriteLine($"Fehler: {ex.Message}"); } }
static async Task Main(string[] args) { Settings settings = null; try { Console.WriteLine("Lese Einstellungen aus Settings.json ..."); string settingsJson = File.ReadAllText("Settings.json"); settings = JsonConvert.DeserializeObject <Settings>(settingsJson); } catch (Exception ex) { Console.WriteLine($"Auf Settings.json konnte nicht zugegriffen werden ({ex.GetType().Name}). Es werden Default-Werte angenommen."); } try { string baseUrl = settings?.BaseUrl ?? "http://localhost:8500"; string nameTestAdresse = settings?.AdressName ?? "API-Testadresse"; Console.WriteLine($"Stelle Verbindung zu {baseUrl} her ..."); var client = new NevarisBuildClient(baseUrl); // API-Version abfragen und auf Kompatibilität mit Client überprüfen var versionCheckResult = await client.CheckVersion(); if (!versionCheckResult.AreVersionsCompatible) { throw new InvalidOperationException($"Versionskonflikt: API: {versionCheckResult.ApiVersion}, client: {versionCheckResult.ClientVersion}"); } // Alle Adressen laden Console.WriteLine("Lade Adressen ..."); var adressen = await client.StammApi.GetAdressen(); Console.WriteLine($"{adressen.Count} Adressen geladen."); // Einzelne Adresse heraussuchen und gegenenfalls neu anlegen Console.WriteLine($"Suche Adresse mit Namen '{nameTestAdresse}' ..."); var testAdresse = adressen.FirstOrDefault(a => a.Name == nameTestAdresse); if (testAdresse == null) { Console.WriteLine("Adresse nicht gefunden. Lege neue Adresse an."); testAdresse = await client.StammApi.CreateAdresse(new NewAdresseInfo { AdressArt = AdressArt.Organisation, Name = nameTestAdresse }); Console.WriteLine($"Adresse mit Code {testAdresse.Code} angelegt."); } else { Console.WriteLine($"Adresse gefunden (Code = {testAdresse.Code})."); // Die Adresse vollständig laden. (Der Aufruf client.StammApi.GetAdressen lädt nämlich nur // die Basiseigenschaften, d.h. ohne Detailinfos wie Bankverbindungen, Adressaten usw.) Console.WriteLine($"Lade vollständige Adresse mit Code = {testAdresse.Code} ..."); testAdresse = await client.StammApi.GetAdresse(testAdresse.Code); } // Ändere einige Eigenschaften Console.WriteLine("Ändere einige Eigenschaften der Adresse ..."); testAdresse.Beschreibung = "Dies ist eine Beispieladresse"; testAdresse.GültigAb = DateTime.Now; if (testAdresse.Bankverbindungen.Count == 0) { testAdresse.Bankverbindungen.Add(new Bankverbindung { Bankname = "Deutsche Kreditbank Berlin", Iban = "DE02120300000000202051", Bic = "BYLADEM1001" }); } // Speichere die geänderte Adresse Console.WriteLine("Aktualisiere Adresse in NEVARIS Build ..."); await client.StammApi.UpdateAdresse(testAdresse.Code, testAdresse); Console.WriteLine("Aktualisierung erfolgreich."); } catch (Exception ex) { Console.WriteLine($"Fehler: {ex.Message}"); } Console.WriteLine("Zum Beenden bitte eine Taste drücken ..."); Console.ReadKey(intercept: true); }