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); }
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); }
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); }