Пример #1
0
        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);
        }
Пример #2
0
        private void OpenCopyInKitExplorer(DataTreeNodeViewModel kitNode)
        {
            var kit       = Module.ExportKit(kitNode.KitNumber !.Value);
            var viewModel = new KitExplorerViewModel(ViewServices, Logger, DeviceViewModel, kit);

            ViewServices.ShowKitExplorer(viewModel);
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
            }
        }