private void AddMedia(string title, string fullpath, string teaser, DateTime?date, ContentFolder rootFolder) { var mediaFile = _contentRepository.GetDefault <DocumentFile>(rootFolder.ContentLink); mediaFile.Name = title; mediaFile.Description = StripHtml(teaser); mediaFile.PubDate = date == null ? DateTime.Today : date.Value; var extension = Path.GetExtension(fullpath); var blob = _blobFactory.CreateBlob(mediaFile.BinaryDataContainer, extension); var fileData = File.ReadAllBytes(fullpath); using (var s = blob.OpenWrite()) { var w = new BinaryWriter(s); w.Write(fileData); w.Flush(); } mediaFile.BinaryData = blob; _contentRepository.Save(mediaFile, SaveAction.Publish); }
private void WriteBlobToStorage(string name, byte[] data, MediaData md) { var blob = _blobfactory.CreateBlob(md.BinaryDataContainer, Path.GetExtension(name)); using (var s = blob.OpenWrite()) { BinaryWriter w = new BinaryWriter(s); w.Write(data); w.Flush(); } md.BinaryData = blob; }
public Task <string> SaveAsync(Stream fileStream, string extension, string fileGroups, string owner) { if (string.IsNullOrWhiteSpace(fileGroups)) { throw new ArgumentNullException(nameof(fileGroups)); } if (string.IsNullOrWhiteSpace(extension)) { throw new ArgumentNullException(nameof(extension)); } if (fileStream == null) { throw new ArgumentNullException(nameof(fileStream)); } var fileGroupArray = fileGroups.Split('/').Where(n => !string.IsNullOrWhiteSpace(n)); var groupArray = fileGroupArray as string[] ?? fileGroupArray.ToArray(); var groupFolder = GetGroupFolder(groupArray); //Get a suitable MediaData type from extension var mediaType = _mediaResolver.GetFirstMatching(extension); var contentType = _contentTypeRepo.Load(mediaType); var mediaData = _contentRepo.GetDefault <MediaData>(groupFolder.ContentLink, contentType.ID); var fileName = $"{DateTime.Now.Ticks}_{Guid.NewGuid().ToString()}{extension}"; mediaData.Name = fileName; mediaData.CreatedBy = owner; //Create a blob in the binary container var blob = _blobFactory.CreateBlob(mediaData.BinaryDataContainer, extension); blob.Write(fileStream); //Assign to file and publish changes mediaData.BinaryData = blob; _contentRepo.Save(mediaData, SaveAction.Publish, AccessLevel.NoAccess); return(Task.FromResult($"/globalassets/{string.Join("/", groupArray)}/{fileName}")); }