/// <summary>
        /// add a file to the list (managing filename uniqueness) and return a file
        /// URI to the full path of the added file
        /// </summary>
        /// <param name="requestedFileName"></param>
        /// <param name="fileContents"></param>
        /// <returns></returns>
        public string AddFile(string requestedFileName, Stream fileContents)
        {
            string fileName = TempFileManager.CreateNewFile(_storageDirectory.FullName, CleanPathForServer(requestedFileName), false);

            using (FileStream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write))
                StreamHelper.Transfer(fileContents, fileStream);

            return(UrlHelper.GetLocalFileUrl(fileName));
        }
        /// <summary>
        /// Create a unique file placeholder.
        /// </summary>
        /// <param name="requestedFileName"></param>
        /// <returns></returns>
        public string CreateFile(string requestedFileName)
        {
            if (!FileHelper.IsValidFileName(requestedFileName))
            {
                requestedFileName = FileHelper.GetPrettyFileName(requestedFileName);
            }

            string fileName = TempFileManager.CreateNewFile(_storageDirectory.FullName, requestedFileName, false);

            return(fileName);
        }