예제 #1
0
        /// <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;
        }
예제 #2
0
 /// <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;
 }