private void Loeschen(string guid) { var item = ResteListe.First(teil => teil.Guid == guid); _deletedItems.Add(new LoeschenDto { Guid = item.Guid, DokumenteLoeschen = true }); ResteListe.Remove(item); var datei = _dateiCache.FirstOrDefault(teil => teil.Item1 == guid); if (datei != null) { foreach (var file in datei.Item2) { try { File.Delete(Path.Combine("Daten", "Temp", file.Guid + "." + file.Dateiendung)); } catch (Exception) { } } _dateiCache.Remove(datei); } IsDirty = true; }
public void Sichern() { PluginManager.DbManager.DeleteTeile(_deletedItems); _deletedItems.Clear(); PluginManager.DbManager.SaveEinzelteile(ResteListe.Select(item => new RestteilDto { Guid = item.Guid, Komponente = item.Komponente, Hersteller = item.Hersteller, Beschreibung = item.Beschreibung, Groesse = item.Groesse, Jahr = item.Jahr, DatenbankId = item.DatenbankId, DatenbankLink = item.DatenbankLink, Preis = item.Preis, Gewicht = item.Gewicht }).ToList()); foreach (var item in _dateiCache) { PluginManager.DbManager.SaveDateiInfos(item.Item1, item.Item2); } foreach (var item in ResteListe) { item.IsNeueKomponente = false; } _dateiCache.Clear(); IsDirty = false; }
public void NachUntenSortieren(string guid) { var teil1 = ResteListe.First(teil => teil.Guid == guid); if (teil1 != null && ResteListe.IndexOf(teil1) + 1 < ResteListe.Count) { var teil2 = ResteListe[ResteListe.IndexOf(teil1) + 1]; if (teil2 != null) { ResteListe.Move(ResteListe.IndexOf(teil1), ResteListe.IndexOf(teil2)); IsDirty = true; } } }
public void Zureucksetzen() { ResteListe.Clear(); _deletedItems.Clear(); foreach (var item in _dateiCache) { foreach (var file in item.Item2) { try { File.Delete(Path.Combine("Daten", "Temp", file.Guid + "." + file.Dateiendung)); } catch (Exception) { } } } _dateiCache.Clear(); var teileliste = new List <RestteilDto>(); PluginManager.DbManager.GetEinzelteile(ref teileliste); foreach (var item in teileliste) { var viewModel = new RestteilViewModel(item) { LoeschenAction = Loeschen, NachObenAction = NachObenSortieren, NachUntenAction = NachUntenSortieren, GetDateiCacheFunc = GetDateiCache, SaveDateiCache = AktualisiereDateiCache }; viewModel.PropertyChanged += ContentPropertyChanged; ResteListe.Add(viewModel); } IsDirty = false; }
private void Hinzufuegen(Window window) { var dialog = new NeuesEinzelteilDialog { Top = window.Top + 40, Left = window.Left + (window.ActualWidth - 600) / 2, Owner = window }; var viewModel = new NeuesEinzelteilViewModel(EinzelteilBearbeitenEnum.Restteil, new List <EinzelteilAuswahlViewModel>(), new List <WunschteilAuswahlViewModel>()) { CloseAction = dialog.Close }; dialog.DataContext = viewModel; dialog.ShowDialog(); if (viewModel.IsOk) { switch (viewModel.Auswahl) { case SourceEnum.NeuesEinzelteil: { var neuesEinzelteil = new RestteilViewModel(new RestteilDto { Guid = Guid.NewGuid().ToString(), Komponente = viewModel.NeuViewModel.Komponente, Hersteller = viewModel.NeuViewModel.Hersteller, Beschreibung = viewModel.NeuViewModel.Beschreibung, Groesse = viewModel.NeuViewModel.Groesse, Jahr = viewModel.NeuViewModel.Jahr, DatenbankId = "", DatenbankLink = "", Preis = viewModel.NeuViewModel.Preis, Gewicht = viewModel.NeuViewModel.Gewicht }) { NachObenAction = NachObenSortieren, NachUntenAction = NachUntenSortieren, LoeschenAction = Loeschen, GetDateiCacheFunc = GetDateiCache, SaveDateiCache = AktualisiereDateiCache }; neuesEinzelteil.PropertyChanged += ContentPropertyChanged; neuesEinzelteil.IsNeueKomponente = true; ResteListe.Add(neuesEinzelteil); break; } case SourceEnum.AusDatei: { var importer = new TeileImporter(); foreach (var item in importer.ImportEinzelteile(viewModel.DateiViewModel.Datei)) { var neuesEinzelteil = new RestteilViewModel(item) { NachObenAction = NachObenSortieren, NachUntenAction = NachUntenSortieren, LoeschenAction = Loeschen, GetDateiCacheFunc = GetDateiCache, SaveDateiCache = AktualisiereDateiCache }; neuesEinzelteil.PropertyChanged += ContentPropertyChanged; neuesEinzelteil.IsNeueKomponente = true; ResteListe.Add(neuesEinzelteil); } _dateiCache.AddRange(importer.DateiCache); break; } case SourceEnum.AusGewichtsdatenbank: { foreach (var teil in viewModel.DatenbankViewModel.Datenbankteile.Where(teil => teil.IsChecked).ToList()) { if (teil.IsChecked) { var neuesEinzelteil = new RestteilViewModel(new RestteilDto { Guid = Guid.NewGuid().ToString(), Komponente = teil.Komponente, Hersteller = teil.Hersteller, Beschreibung = teil.Beschreibung, Groesse = teil.Groesse, Jahr = teil.Jahr, DatenbankId = teil.DatenbankId, DatenbankLink = teil.DatenbankLink, Preis = 0, Gewicht = teil.Gewicht }) { NachObenAction = NachObenSortieren, NachUntenAction = NachUntenSortieren, LoeschenAction = Loeschen, GetDateiCacheFunc = GetDateiCache, SaveDateiCache = AktualisiereDateiCache }; neuesEinzelteil.PropertyChanged += ContentPropertyChanged; neuesEinzelteil.IsNeueKomponente = true; ResteListe.Add(neuesEinzelteil); } } break; } } IsDirty = true; } }