/// <summary> /// /// </summary> /// <param name="docData"></param> /// <param name="projectPath"> /// The path to save the serialized project to. /// If none is specified, choose one based on the image path. /// </param> public SerializedMetadata Save(DocumentMetadata docData, string projectPath = null) { if (docData is null) { throw new ArgumentNullException(nameof(docData)); } projectPath = string.IsNullOrEmpty(projectPath) ? ImageToProjectPath(docData.ImagePath) : projectPath; var serializedData = JsonConvert.SerializeObject(docData); File.WriteAllText(projectPath, serializedData); return(new SerializedMetadata(projectPath, docData, this)); }
public SerializedMetadata Create(string imgPath, string projectPath = null, bool overwriteFile = false) { if (!File.Exists(imgPath)) { throw new FileNotFoundException("Image file doesn't exist.", imgPath); } var docData = new DocumentMetadata(imgPath); projectPath = string.IsNullOrEmpty(projectPath) ? ImageToProjectPath(docData.ImagePath) : projectPath; if (!overwriteFile && File.Exists(projectPath)) { throw new InvalidOperationException("You cannot overwrite the project file."); } Save(docData, projectPath); return(new SerializedMetadata(projectPath, docData, this)); }
public SerializedMetadata(string projectPath, DocumentMetadata data, DocumentMetadataSerializer serializer) { ProjectPath = projectPath; Data = data; Serializer = serializer; }