/// <summary> /// Gets the full URI path. /// </summary> /// <param name="paperclip">The paperclip.</param> /// <param name="paperclipsContainer">The paperclips container.</param> /// <param name="sysOpts">The system opts.</param> /// <returns>System.String.</returns> public static string GetFullURIPath(IPaperclip paperclip, IHasPaperclips paperclipsContainer, ISystemPathsInfo sysOpts) { var toReturn = string.Empty; StorageLocations location; if (paperclip != null && Enum.TryParse(paperclip.Location, false, out location)) { switch (location) { case StorageLocations.Paperclip: if (sysOpts != null) toReturn = Path.Combine(CreatePaperclipSubfolder(sysOpts.PaperclipURI, paperclipsContainer), paperclip.FileNameNoExtension + paperclip.FileExtension); break; case StorageLocations.Hyperlink: toReturn = paperclip.CurrentURI; break; case StorageLocations.Temp: if (sysOpts != null) toReturn = sysOpts.TempDocumentURI + paperclip.FileNameNoExtension + paperclip.FileExtension; break; } } return toReturn; }
/// <summary> /// Creates the paperclip subfolder. /// </summary> /// <param name="paperclipUNC">The paperclip unc.</param> /// <param name="paperclipsContainer">The paperclips container.</param> /// <returns>System.String.</returns> public static string CreatePaperclipSubfolder(string paperclipUNC, IHasPaperclips paperclipsContainer) { var model = paperclipsContainer as IEditableRoot; return model != null ? Path.Combine(paperclipUNC, model.ProcessName, model.Id.ToString(CultureInfo.InvariantCulture)) : paperclipUNC; }