using CommunityToolkit.Mvvm.Input; using dcnsanplanung.DAL.Services.PostgresqlData; using dcnsanplanung.shared.Model; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input; namespace dcnsanplanung.wpf.ViewModel { internal class MainWindowViewModel : BaseViewModel { public List VerfügbareHaltungen { get; set; } = new List(); Queue Einzelfallbetrachtung = new Queue(); public ICommand LoadXMLFile { get; set; } public ICommand Klassifiere { get; set; } public ICommand SelectEinzelfall { get; set; } public string ZahlEinzelfall => Einzelfallbetrachtung.Count.ToString(); private Haltung? selectedHaltung; public Haltung? SelectedHaltung { get => selectedHaltung; set { if(selectedHaltung != value) { selectedHaltung = value; OnPropertyChanged(); } } } public MainWindowViewModel() { LoadHaltungen(); LoadXMLFile = new RelayCommand(() => dooAsync()); Klassifiere = new RelayCommand(() => dooKlassifiziereAsync()); SelectEinzelfall = new RelayCommand(() => selectEinzelfall()); } private void selectEinzelfall() { Haltung? einzelfall = Einzelfallbetrachtung.Dequeue(); if (einzelfall == null) return; W_ObjektView w_ObjektView = new W_ObjektView(); w_ObjektView.DataContext = new HaltungObjektViewModel(einzelfall); w_ObjektView.Show(); } private async void dooKlassifiziereAsync() { DAL.Services.PostgresqlData.HaltungDataService haltungDataService = new DAL.Services.PostgresqlData.HaltungDataService("Host = localhost; Database = sanplaner; Username = dcnsanplaner; Password = sanplaner"); var s = await haltungDataService.GetAllByProjekt(0); // Alle Haltungen laden SchadenDataService schadenDataService = new SchadenDataService("Host = localhost; Database = sanplaner; Username = dcnsanplaner; Password = sanplaner"); foreach (var item in s) { IEnumerable src_kodierung = await schadenDataService.GetAllByHaltung(item); item.Kodierungen = src_kodierung.ToList(); } // Alle Schäden Klassifizieren foreach(var haltung in s) { bool einzelfall = false; foreach(var schaden in haltung.Kodierungen) { var k = bewertung.BewM149.Klassifiziere(schaden.Hauptcode, schaden.CH1, schaden.CH2, schaden.Q1, schaden.Q2, (int)haltung.DN); //SchadenDataService schadenDataService = new SchadenDataService("Host = localhost; Database = sanplaner; Username = dcnsanplaner; Password = sanplaner"); if (k.Count == 0) continue; schaden.KB = k["B"]; schaden.KD = k["D"]; schaden.KS = k["S"]; if(schaden.KB == 7 || schaden.KD == 7 || schaden.KS == 7) { einzelfall = true; } await schadenDataService.Update(schaden); } if(einzelfall) { Einzelfallbetrachtung.Enqueue(haltung); OnPropertyChanged("ZahlEinzelfall"); } } } async Task dooAsync() { DAL.Helper.WriteToDatabase writer = new DAL.Helper.WriteToDatabase(@"D:\Airbus\Airbus Nordenham RW Viewer für Sanierungskonzept\Airbus Nordenham RW.xml"); await writer.WriteInHaltung(); //Debugger.Break(); await writer.WriteInLV(); } private async void LoadHaltungen() { DAL.Services.PostgresqlData.HaltungDataService haltungDataService = new DAL.Services.PostgresqlData.HaltungDataService("Host = localhost; Database = sanplaner; Username = dcnsanplaner; Password = sanplaner"); var s = await haltungDataService.GetAllByProjekt(0); foreach(var item in s) { VerfügbareHaltungen.Add(item); } OnPropertyChanged(nameof(VerfügbareHaltungen)); } } }