public bool Handle(IClassInfoSerializer serializer, ClassInfo classInfo)
        {
            if (!_enabled)
            {
                return(false);
            }

            ThreadHelper.ThrowIfNotOnUIThread();

            var filename = GenerateUniqueFileName(serializer, classInfo);

            try
            {
                if (TryWriteTempFile(filename, serializer, classInfo))
                {
                    return(ShowTempFile(filename));
                }
            }
            catch (UnauthorizedAccessException)
            {
                _enabled = false;
            }
            catch (IOException)
            {
                _enabled = false;
            }
            finally
            {
                File.Delete(filename);
            }

            return(false);
        }
Пример #2
0
        public bool Handle(IClassInfoSerializer serializer, ClassInfo classInfo)
        {
            if (!_enabled)
            {
                return(false);
            }

            try
            {
                if (TryWriteTempFile(serializer, classInfo, out string filename))
                {
                    bool result = ShowTempFile(filename);

                    // Delete the file after opening.
                    File.Delete(filename);
                    return(result);
                }
            }
            catch (UnauthorizedAccessException)
            {
                _enabled = false;
            }
            catch (IOException)
            {
                _enabled = false;
            }

            return(false);
        }
        public bool Handle(IClassInfoSerializer serializer, ClassInfo classInfo)
        {
            string memberInfoString = PrintMemberInfoRercursive(classInfo, 0);
            string json             = serializer.Serialize(classInfo);
            string output           = memberInfoString + Environment.NewLine + Environment.NewLine + json;

            return(SerializeThisCommand.ShowMessageBox(_serviceProvider, output));
        }
        private bool TryWriteTempFile(string filename, IClassInfoSerializer serializer, ClassInfo classInfo)
        {
            string serialized = serializer.Serialize(classInfo);

            File.WriteAllText(filename, serialized);

            return(true);
        }
Пример #5
0
        private bool TryWriteTempFile(IClassInfoSerializer serializer, ClassInfo classInfo, out string filename)
        {
            filename = GenerateUniqueFileName(serializer, classInfo);

            string serialized = serializer.Serialize(classInfo);

            File.WriteAllText(filename, serialized);

            return(true);
        }
        public bool Handle(IClassInfoSerializer serializer, ClassInfo classInfo)
        {
            if (_modelForm == null || _modelForm.IsDisposed)
            {
                InitializeForm();
            }

            _modelForm.UpdateModel(serializer, classInfo);
            _modelForm.Show();
            _modelForm.Focus();

            return(true);
        }
        private string GenerateUniqueFileName(IClassInfoSerializer serializer, ClassInfo classInfo)
        {
            string filename;
            int    i = 0;

            do
            {
                filename = Path.Combine(Path.GetTempPath(), ReplaceInvalidFilenameChars(classInfo.Name, '_'));
                if (i > 0)
                {
                    filename += $"({i})";
                }
                i++;

                filename += "." + serializer.FileExtension;
            }while (File.Exists(filename));

            return(filename);
        }
 public void UpdateModel(IClassInfoSerializer serializer, ClassInfo classInfo)
 {
     this.serializedModelTextBox.Text = serializer.Serialize(classInfo);
 }