private void FilesListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { this.BodyFileRtb.IsEnabled = true; this.SaveFileBtn.IsEnabled = true; if (this.FilesListBox.SelectedItem != null) { var item = (FileModel)this.FilesListBox.SelectedItem; if (item.fileName != FileModel.DefaultFileName) { this.NameFileTb.IsEnabled = false; this.DeleteFileDtn.IsEnabled = true; this.NameFileTb.Text = item.fileName; JournalFileSystemController.AddInfo("Начало изменения существуещего файла"); } else { this.NameFileTb.IsEnabled = true; this.DeleteFileDtn.IsEnabled = false; this.NameFileTb.Text = string.Empty; JournalFileSystemController.AddInfo("Начало создание нового файла"); } TextRange textRange = new TextRange(this.BodyFileRtb.Document.ContentStart, this.BodyFileRtb.Document.ContentEnd); textRange.Text = item.body; } }
private void SaveFileBtn_Click(object sender, RoutedEventArgs e) { if (this.FilesListBox.SelectedItem != null) { FileModel file = new FileModel(); file.fileName = this.NameFileTb.Text; if (!string.IsNullOrEmpty(file.fileName)) { if (file.fileName != FileModel.DefaultFileName) { file.body = (new TextRange(this.BodyFileRtb.Document.ContentStart, this.BodyFileRtb.Document.ContentEnd)).Text; if (FileSystem.Save(file)) { JournalFileSystemController.AddInfo($"Файл {file.ToString()} успешно сохранён"); } else { JournalFileSystemController.AddInfo($"Файл {file.ToString()} не сохранён"); } } else { MessageBoxHellpers.Error("Ошибка", "Недопустимое имя файла"); } } else { MessageBoxHellpers.Error("Ошибка", "Поле 'Имя файла' обязательно для заполнения !"); } } }
/// <summary> /// Обновляет ListBox на основе Журнала. /// </summary> /// <param name="filesListOld">Старый список.</param> /// <param name="journal">Журнал файловой системы.</param> public static void UpdateFileList(ObservableCollection <FileModel> filesListOld, JournalFileSystemController journal) { if (filesListOld.FirstOrDefault(x => x.fileName == FileModel.DefaultFileName) == null) { filesListOld.Add(new FileModel()); } //Удаляем из ListBox удаленные из файловой системы файлы foreach (var file in journal.deleteFiles) { if (file.Value.fileName != FileModel.DefaultFileName) { var item = filesListOld.FirstOrDefault(x => x.fileName == file.Value.fileName); JournalFileSystemController.AddInfo($"Файл {item.ToString()} удален"); filesListOld.Remove(item); } } //Обновляем тела документов foreach (var file in journal.changeBodyFiles) { var item = filesListOld.FirstOrDefault(x => x.fileName == file.Value.fileName); if (item.body != file.Value.body) { JournalFileSystemController.AddInfo($"Содержание файла {item.ToString()} изменено"); } item.body = file.Value.body; } //Добавляем новые документы foreach (var file in journal.filesListNew) { filesListOld.Add(file); JournalFileSystemController.AddInfo($"Добавлен новый файл {file.ToString()}"); } }