public void Zuruecksetzen() { DateiListe.Clear(); _deletedItems.Clear(); var teileliste = new List <DateiDto>(); if (_isCachedKomponente) { foreach (var item in DateiCache) { var viewModel = new DokumentViewModel(_komponenteGuid, item) { NachObenAction = NachObenSortieren, NachUntenAction = NachUntenSortieren, LoeschenAction = Loeschen }; viewModel.PropertyChanged += ContentPropertyChanged; DateiListe.Add(viewModel); } } else { PluginManager.DbManager.GetDateiInfos(_komponenteGuid, ref teileliste); foreach (var item in teileliste) { var viewModel = new DokumentViewModel(_komponenteGuid, item) { LoeschenAction = Loeschen, NachObenAction = NachObenSortieren, NachUntenAction = NachUntenSortieren }; viewModel.PropertyChanged += ContentPropertyChanged; DateiListe.Add(viewModel); } } IsDirty = false; }
internal DateiManagerViewModel(string guid, string komponente, string hersteller, string beschreibung, bool isCachedKomponente, List <DateiDto> dateiListe) { DateiListe = new ObservableCollection <DokumentViewModel>(); _deletedItems = new List <string>(); SichernCommand = new MyParameterCommand <Window>(SichernVoid); HinzufuegenCommand = new MyParameterCommand <Window>(OnHinzufuegen); ExportCommand = new MyParameterCommand <Window>(OnExport); ZuruecksetzenCommand = new MyCommand(Zuruecksetzen); _komponenteGuid = guid; _komponenteKomponente = komponente; _komponenteHersteller = hersteller; _komponenteBeschreibung = beschreibung; _isCachedKomponente = isCachedKomponente; if (_isCachedKomponente) { DateiCache = new List <DateiDto>(dateiListe); foreach (var item in DateiCache) { var viewModel = new DokumentViewModel(_komponenteGuid, item) { NachObenAction = NachObenSortieren, NachUntenAction = NachUntenSortieren, LoeschenAction = Loeschen }; viewModel.PropertyChanged += ContentPropertyChanged; DateiListe.Add(viewModel); } } else { DateiCache = new List <DateiDto>(); if (Directory.Exists(Path.Combine("Daten", _komponenteGuid))) { var liste = new List <DateiDto>(); PluginManager.DbManager.GetDateiInfos(_komponenteGuid, ref liste); foreach (var datei in liste) { var viewModel = new DokumentViewModel(_komponenteGuid, datei) { NachObenAction = NachObenSortieren, NachUntenAction = NachUntenSortieren, LoeschenAction = Loeschen }; viewModel.PropertyChanged += ContentPropertyChanged; DateiListe.Add(viewModel); } } } IsDirty = false; }
private void OnHinzufuegen(Window window) { var dialog = new NeuesDokumentDialog() { Top = window.Top + 40, Left = window.Left + (window.ActualWidth - 505) / 2, Owner = window }; var viewModel = new DokumentBearbeitenViewModel("", true) { CloseAction = dialog.Close }; dialog.DataContext = viewModel; dialog.ShowDialog(); if (viewModel.IsOk) { try { var datei = viewModel.DateiViewModel.Datei; var dateiendung = Path.GetExtension(datei); if (!string.IsNullOrWhiteSpace(dateiendung)) { if (dateiendung.Substring(0, 1) == ".") { dateiendung = dateiendung.Substring(1); } } dateiendung = dateiendung.ToLower(); var guid = Guid.NewGuid().ToString(); File.Copy(datei, "Daten\\Temp\\" + guid + "." + dateiendung); var newItem = new DokumentViewModel(_komponenteGuid, new DateiDto() { Guid = guid, Beschreibung = viewModel.Beschreibung, Kategorie = viewModel.SelectedKategorie, Dateiendung = dateiendung }) { NachObenAction = NachObenSortieren, NachUntenAction = NachUntenSortieren, LoeschenAction = Loeschen }; newItem.PropertyChanged += ContentPropertyChanged; DateiListe.Add(newItem); IsDirty = true; } catch (Exception ex) { var message = "Die Datei konnte nicht kopiert werden."; if (!string.IsNullOrWhiteSpace(ex.Message)) { message += Environment.NewLine + Environment.NewLine; message += ex.Message; } HilfsFunktionen.ShowMessageBox(window, "Dateimanager", message, true); } } }