Example #1
0
        public void OpenSolution()
        {
            var serializationService = ShServiceContainer.Instance.SerializationService;

            ShSerializationDataService.RegisterKnownTypes(typeof(MetaPackSolution).Assembly.GetTypes());

            var dlg = new OpenFileDialog
            {
                Filter      = "MetaPack Solution (.mpack)|*.mpack|All Files (*.*)|*.*",
                FilterIndex = 0
            };

            var result = dlg.ShowDialog();

            if (result == DialogResult.OK)
            {
                _lastFileLocation = dlg.FileName;

                var data     = File.ReadAllText(dlg.FileName);
                var solution = serializationService.Deserialize(typeof(MetaPackSolution), data) as MetaPackSolution;

                CurrentSolution = solution;

                RaiseEvent(new SolutionEvent
                {
                    EventType = SolutionEventType.Opened,
                    Item      = solution
                });
            }
        }
Example #2
0
        public static string SerializeToString(object obj, IEnumerable <Type> extraTypes)
        {
            var serializer = new ShSerializationDataService();

            if (extraTypes != null)
            {
                ShSerializationDataService.RegisterKnownTypes(extraTypes);
            }

            return(serializer.Serialize(obj));
        }
Example #3
0
        public static T DeserializeFromString <T>(string value, IEnumerable <Type> extraTypes)
        {
            var serializer = new ShSerializationDataService();

            if (extraTypes != null)
            {
                ShSerializationDataService.RegisterKnownTypes(extraTypes);
            }

            var result = serializer.Deserialize(typeof(T), value);

            if (result != null)
            {
                return((T)result);
            }

            return(default(T));
        }
Example #4
0
        public void SaveSolution(bool showSaveAsDialog)
        {
            var solution = CurrentSolution;

            if (solution != null)
            {
                var targetFile = _lastFileLocation;

                if (string.IsNullOrEmpty(targetFile) || showSaveAsDialog)
                {
                    var dlg = new SaveFileDialog
                    {
                        Filter           = "MetaPack Solution (.mpack)|*.mpack|All Files (*.*)|*.*",
                        FilterIndex      = 0,
                        RestoreDirectory = true
                    };

                    if (dlg.ShowDialog() == DialogResult.OK)
                    {
                        targetFile        = dlg.FileName;
                        _lastFileLocation = targetFile;
                    }
                }

                if (!string.IsNullOrEmpty(targetFile))
                {
                    ShSerializationDataService.RegisterKnownTypes(typeof(MetaPackSolution).Assembly.GetTypes());

                    var serializationService = ShServiceContainer.Instance.SerializationService;

                    var workspaceContent = serializationService.Serialize(solution);
                    File.WriteAllText(targetFile, workspaceContent);
                }

                RaiseEvent(new SolutionEvent
                {
                    EventType = SolutionEventType.Saved,
                    Item      = solution
                });
            }
        }