internal ISupportingFile CreateSupportingFileFromStoragePath(string fileName, string storagePath) { SupportingFileFactory fileFactory = new SupportingFileFactory(this, Guid.NewGuid().ToString(), fileName, 1); _factoriesById[fileFactory.FileId] = fileFactory; ISupportingFile file = fileFactory.CreateSupportingFile(new Uri(UrlHelper.CreateUrlFromPath(storagePath)), fileName, CreateUniqueFileNameToken(fileName), true); return file; }
internal ISupportingFile CreateSupportingFileFromStoragePath(string fileName, string storagePath) { SupportingFileFactory fileFactory = new SupportingFileFactory(this, Guid.NewGuid().ToString(), fileName, 1); _factoriesById[fileFactory.FileId] = fileFactory; ISupportingFile file = fileFactory.CreateSupportingFile(new Uri(UrlHelper.CreateUrlFromPath(storagePath)), fileName, CreateUniqueFileNameToken(fileName), true); return(file); }
public ISupportingFile CreateSupportingFile(string fileName, string fileNameUniqueToken, Stream s) { string storagePath = _fileStorage.CreateFile(fileName); using (Stream outStream = new FileStream(storagePath, FileMode.OpenOrCreate, FileAccess.Write)) StreamHelper.Transfer(s, outStream); SupportingFileFactory fileFactory = new SupportingFileFactory(this, Guid.NewGuid().ToString(), fileName, 1); _factoriesById[fileFactory.FileId] = fileFactory; ISupportingFile file = fileFactory.CreateSupportingFile(new Uri(UrlHelper.CreateUrlFromPath(storagePath)), fileName, fileNameUniqueToken, true); return file; }
public ISupportingFile AddLinkedSupportingFileReference(Uri sourceUri) { ISupportingFile file = GetFileByUri(sourceUri); if (file == null) { string fileName = Path.GetFileName(sourceUri.LocalPath); SupportingFileFactory fileFactory = new SupportingFileFactory(this, Guid.NewGuid().ToString(), fileName, 1); _factoriesById[fileFactory.FileId] = fileFactory; file = fileFactory.CreateSupportingFile(sourceUri, fileName, CreateUniqueFileNameToken(fileName + "_linked"), false); } return file; }
public ISupportingFile AddLinkedSupportingFileReference(Uri sourceUri) { ISupportingFile file = GetFileByUri(sourceUri); if (file == null) { string fileName = Path.GetFileName(sourceUri.LocalPath); SupportingFileFactory fileFactory = new SupportingFileFactory(this, Guid.NewGuid().ToString(), fileName, 1); _factoriesById[fileFactory.FileId] = fileFactory; file = fileFactory.CreateSupportingFile(sourceUri, fileName, CreateUniqueFileNameToken(fileName + "_linked"), false); } return(file); }
public ISupportingFile CreateSupportingFile(string fileName, string fileNameUniqueToken, Stream s) { string storagePath = _fileStorage.CreateFile(fileName); using (Stream outStream = new FileStream(storagePath, FileMode.OpenOrCreate, FileAccess.Write)) StreamHelper.Transfer(s, outStream); SupportingFileFactory fileFactory = new SupportingFileFactory(this, Guid.NewGuid().ToString(), fileName, 1); _factoriesById[fileFactory.FileId] = fileFactory; ISupportingFile file = fileFactory.CreateSupportingFile(new Uri(UrlHelper.CreateUrlFromPath(storagePath)), fileName, fileNameUniqueToken, true); return(file); }
public void ReadFileVersionData(XmlTextReader reader, SupportingFileFactory fileFactory) { Debug.Assert(reader.LocalName == ATTACHED_FILE_VERSION_ELEMENT, "Xml reader is improperly positioned"); int depth = 0; string fileName = reader.GetAttribute(ATTACHED_FILE_NAME); string fileNameUniqueToken = reader.GetAttribute(ATTACHED_FILE_NAME_UNIQUETOKEN); if (fileNameUniqueToken == null) //necessary for interim Wave2 M1 builds fileNameUniqueToken = _fileService.CreateUniqueFileNameToken(fileName); string fileVersionString = reader.GetAttribute(ATTACHED_FILE_VERSION_ATTRIBUTE); int fileVersion = -1; if (fileVersionString != null) fileVersion = Int32.Parse(fileVersionString, CultureInfo.InvariantCulture); bool embedded = bool.Parse(reader.GetAttribute(ATTACHED_FILE_EMBEDDED_ATTRIBUTE)); string fileUriString = reader.GetAttribute(ATTACHED_FILE_URI_ATTRIBUTE); //fixup the reference path if (embedded) fileUriString = _supportingFilePersister.LoadFilesAndFixupReferences(new string[] { fileUriString })[0]; BlogPostSettingsBag settings = new BlogPostSettingsBag(); if (!reader.IsEmptyElement) { depth = 1; while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { bool isEmptyElement = reader.IsEmptyElement; depth++; if (reader.LocalName == SETTINGS_BAG_ELEMENT) { ReadBlogPostSettingsBag(reader, settings); //this element was completely handled, and the stack was reset to its end element, //so unset the depth and re-start the loop depth--; continue; } if (isEmptyElement) depth--; } else if (reader.NodeType == XmlNodeType.EndElement) { depth--; } if (depth == 0) break; } } fileFactory.CreateSupportingFile(new Uri(UrlHelper.CreateUrlFromPath(fileUriString)), fileVersion, fileName, fileNameUniqueToken, embedded, settings); Debug.Assert(depth == 0 && reader.LocalName == ATTACHED_FILE_VERSION_ELEMENT, "Xmlreader is unexpectedly positioned (probably read to far!)"); }