private void ImportKitFromFile(DataTreeNodeViewModel kitNode) { string?file = ViewServices.ShowOpenFileDialog(FileFilters.KitFiles); if (file is null) { return; } object loaded; try { loaded = ProtoIo.LoadModel(file, Logger); } catch (Exception ex) { Logger.LogError($"Error loading {file}", ex); return; } if (!(loaded is Kit kit)) { Logger.LogError("Loaded file was not a kit"); return; } if (!kit.Schema.Identifier.Equals(Module.Schema.Identifier)) { Logger.LogError($"Kit was from {kit.Schema.Identifier.Name}; this module is {Module.Schema.Identifier.Name}"); return; } Module.ImportKit(kit, kitNode.KitNumber !.Value); }
private void OpenCopyInKitExplorer(DataTreeNodeViewModel kitNode) { var kit = Module.ExportKit(kitNode.KitNumber !.Value); var viewModel = new KitExplorerViewModel(ViewServices, Logger, DeviceViewModel, kit); ViewServices.ShowKitExplorer(viewModel); }
private void CopyKit(DataTreeNodeViewModel kitNode) { var kit = Module.ExportKit(kitNode.KitNumber !.Value); var viewModel = new CopyKitViewModel(Module, kit); var destinationKitNumber = ViewServices.ChooseCopyKitTarget(viewModel); if (destinationKitNumber is int destination) { Module.ImportKit(kit, destination); } }
private void ExportKit(DataTreeNodeViewModel kitNode) { var kit = Module.ExportKit(kitNode.KitNumber !.Value);; var file = ViewServices.ShowSaveFileDialog(FileFilters.KitFiles); if (file is null) { return; } using (var stream = File.Create(file)) { kit.Save(stream); } }