private void TreeViewImportList_Click(object sender, RoutedEventArgs e) { var folder = TV.GetSelectedTag <Folder>(); if (folder == null) { return; } var dlg = new OpenFileDialog(); dlg.AddExtension = true; dlg.CheckPathExists = true; dlg.CheckPathExists = true; dlg.DefaultExt = ".json"; dlg.RestoreDirectory = true; dlg.Title = "Choose a list to import"; dlg.Filter = "JSON files (*.json)|*.json|All files (*.*)|*.*"; dlg.FilterIndex = 1; if (dlg.ShowDialog(this).GetValueOrDefault()) { string s = File.ReadAllText(dlg.FileName, Encoding.UTF8); var lwr = JsonUtilities.Deserialize <ListWithRows>(s); if (lwr.List != null) { string name = lwr.List.DisplayName; bool showOptions = false; if (folder.HasLazyChild) { folder.LazyLoadChildren(); } var list = folder.Children.OfType <List>().FirstOrDefault(l => l.DisplayName.EqualsIgnoreCase(name)); List existingList = list; int i = 1; while (list != null) { showOptions = true; name = lwr.List.DisplayName + " - Copy(" + i + ")"; list = folder.Children.OfType <List>().FirstOrDefault(l => l.DisplayName.EqualsIgnoreCase(name)); i++; } var def = new ImportOptionsDefinition(lwr.List, existingList, name); if (showOptions) { var options = new ImportOptions(def); options.Owner = this; if (!options.ShowDialog().GetValueOrDefault()) { return; } } lwr.Import(folder, name, def); this.ShowMessage("Ok"); } } }
public ImportOptions(ImportOptionsDefinition definition) { if (definition == null) { throw new ArgumentNullException(nameof(definition)); } InitializeComponent(); DataContext = definition; }