public virtual MediaContent Update(Repository repository, MediaFolder mediaFolder, string uuid, string fileName, Stream fileStream, string userid, MediaContentMetadata metadata) { IsAllowExtension(fileName, mediaFolder.AllowedExtensions); var binaryContent = mediaFolder.CreateQuery().WhereEquals("UUID", uuid).First(); var old = new MediaContent(binaryContent); binaryContent.UserId = userid; binaryContent.UtcLastModificationDate = DateTime.UtcNow; binaryContent.FileName = fileName; binaryContent.UserKey = fileName; binaryContent.UUID = fileName; if (fileStream != null) { binaryContent.ContentFile = new ContentFile() { Name = fileName, FileName = fileName, Stream = fileStream }; } binaryContent.Metadata = metadata; Provider.Update(binaryContent, old); return(binaryContent); }
public int Count(string repositoryName, string folderName, string prefix) { var mediaFolder = new MediaFolder(new Repository(repositoryName), folderName); return(mediaFolder.CreateQuery().WhereContains("FileName", prefix) .Count()); }
public void TestSimple() { //var binaryContentProvider = Providers.GetProviderFactory(repository.DBProvider).GetProvider<IContentProvider<BinaryContent>>(); var binaryContent1 = new MediaContent(repository.Name, binaryFolder.Name); binaryContent1.UserKey = "image1"; binaryContent1.VirtualPath = "~/binary/image1.jpg"; binaryContent1.ContentFile = new ContentFile() { Name = "image1.jpg", FileName = "image1.jpg", Stream = new MemoryStream(new byte[] { 1, 2, 3, 4, 5, 6 }) }; binaryContentProvider.Add(binaryContent1); var binaryContent2 = new MediaContent(repository.Name, binaryFolder.Name); binaryContent2.UserKey = "image2"; binaryContent2.VirtualPath = "~/binary/image2.jpg"; binaryContent2.ContentFile = new ContentFile() { Name = "image2.jpg", FileName = "image2.jpg", Stream = new MemoryStream(new byte[] { 1, 2, 3, 4, 5, 6 }) }; binaryContentProvider.Add(binaryContent2); var query1 = binaryFolder.CreateQuery().WhereEquals("UUID", (string)(binaryContent1.UUID)); Assert.AreEqual(1, query1.Count()); var binaryContentItem1 = query1.First(); Assert.AreEqual(binaryContent1.UUID, binaryContentItem1.UUID); }
public void Test1() { MediaContent binaryContent1 = new MediaContent(); binaryContent1.Repository = repository.Name; binaryContent1.FolderName = binaryFolder.Name; binaryContent1.FileName = "file1.jpg"; binaryContent1.VirtualPath = "~/file1.jpg"; Providers.DefaultProviderFactory.GetProvider <IMediaContentProvider>().Add(binaryContent1); MediaContent binaryContent2 = new MediaContent(); binaryContent2.Repository = repository.Name; binaryContent2.FolderName = binaryFolder.Name; binaryContent2.FileName = "file2.jpg"; binaryContent2.VirtualPath = "~/file2.jpg"; Providers.DefaultProviderFactory.GetProvider <IMediaContentProvider>().Add(binaryContent2); var query = binaryFolder.CreateQuery().OrderBy("id"); Assert.AreEqual(2, query.Count()); Assert.AreEqual("file1.jpg", query.First().FileName); Assert.AreEqual("file2.jpg", query.Last().FileName); Providers.DefaultProviderFactory.GetProvider <IMediaContentProvider>().Delete(binaryContent1); Assert.AreEqual(1, query.Count()); }
public void Test_Get_Content() { MediaContent content = new MediaContent(repository.Name, mediaFolder.FullName); content.Published = true; content.UserId = "admin"; content.ContentFile = new ContentFile() { FileName = "Test_Get_Content.zip", Stream = new MemoryStream(new byte[10]) }; provider.Add(content); var gotContent = mediaFolder.CreateQuery().WhereEquals("FileName", content.FileName).First(); Assert.AreEqual(content.FileName, gotContent.FileName); Assert.AreEqual(content.UserId, gotContent.UserId); Assert.AreEqual(content.Published, gotContent.Published); Console.WriteLine(content.VirtualPath, gotContent.VirtualPath); }
public void Delete(string repositoryName, string folderName, string fileName) { var mediaFolder = new MediaFolder(new Repository(repositoryName), folderName); var content = mediaFolder.CreateQuery().WhereEquals("FileName", fileName) .FirstOrDefault(); if (content != null) { mediaContentProvider.Delete(content); } }
public IEnumerable <MediaContent> All(string repositoryName, string folderName , int skip, int maxResult, string prefix) { var mediaFolder = new MediaFolder(new Repository(repositoryName), folderName); return(mediaFolder.CreateQuery().WhereContains("FileName", prefix) .Skip(skip) .Take(maxResult) .ToArray() .Select(it => { it.VirtualPath = FileUrlHelper.ResolveUrl(it.VirtualPath); return it; })); }
public MediaContent Get(string repositoryName, string folderName, string fileName) { var mediaFolder = new MediaFolder(new Repository(repositoryName), folderName); var content = mediaFolder.CreateQuery().WhereEquals("FileName", fileName) .FirstOrDefault(); if (content != null) { content.VirtualPath = FileUrlHelper.ResolveUrl(content.VirtualPath); } return(content); }
public virtual ActionResult IsFileNameAvailable(string name, string folderName, string uuid) { if (!string.IsNullOrEmpty(name)) { var folder = new MediaFolder(Repository, folderName); var exists = folder.CreateQuery().WhereEquals("FileName", name).Count() != 0; if (exists) { return(Json("The name already exists.".Localize(), JsonRequestBehavior.AllowGet)); } } return(Json(true, JsonRequestBehavior.AllowGet)); }
public void SaveBytes(MediaContentParameter content) { var mediaContent = content.MediaContent; var mediaFolder = new MediaFolder(new Repository(mediaContent.Repository), mediaContent.FolderName); mediaContent = mediaFolder.CreateQuery().WhereEquals("FileName", mediaContent.FileName) .FirstOrDefault(); using (FileStream file = new FileStream(mediaContent.PhysicalPath, FileMode.Create, System.IO.FileAccess.Write)) { using (MemoryStream stream = new MemoryStream(content.FileData)) { stream.WriteTo(file); } } }
public byte[] GetBytes(string repositoryName, string folderName, string fileName) { var mediaFolder = new MediaFolder(new Repository(repositoryName), folderName); var content = mediaFolder.CreateQuery().WhereEquals("FileName", fileName) .FirstOrDefault(); if (content == null) { return(null); } using (var fs = File.Open(content.PhysicalPath, FileMode.Open, FileAccess.Read, FileShare.Read)) { return(fs.ReadData()); } }
public static MediaContent ParseMediaContent(Repository repository, string virtualPath) { if (repository == null) { throw new ArgumentNullException("repository"); } if (Uri.IsWellFormedUriString(virtualPath, UriKind.Absolute)) { throw new NotSupportedException("Not support to parse absolute url path.".Localize()); } var mediaBaseVirtualPath = UrlUtility.Combine(new RepositoryPath(repository).VirtualPath, FolderPath.GetRootPath(typeof(MediaFolder))); var mediaFolderVirtualPath = UrlUtility.ResolveUrl(mediaBaseVirtualPath); if (virtualPath.Length > mediaFolderVirtualPath.Length) { var mediaContentPath = virtualPath.Substring(mediaBaseVirtualPath.Length - 1); var paths = mediaContentPath.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries); var mediaFolder = new MediaFolder(repository, paths.Take(paths.Length - 1)); var fileName = paths.Last(); return(mediaFolder.CreateQuery().WhereEquals("UUID", fileName).FirstOrDefault()); } return(null); }
public void Test1() { Repository repository = new Repository("TextTranslatorTests"); MediaFolder binaryFolder = new MediaFolder(repository, "image"); var binaryQuery = binaryFolder.CreateQuery().WhereEquals("Title", "title1"); Assert.AreEqual("[MediaContent] SELECT * FROM [TextTranslatorTests.image] WHERE Title = title1 ORDER | OP:Unspecified PageSize:0 TOP:0 Skip:0 ", TextTranslator.Translate(binaryQuery)); Schema schema = new Schema(repository, "news") { IsDummy = false }; TextFolder textFolder = new TextFolder(repository, "news") { SchemaName = "news", IsDummy = false }; var textQuery = textFolder.CreateQuery().WhereEquals("Title", "title1").WhereCategory(textFolder.CreateQuery()); Assert.AreEqual("[TextContent] SELECT * FROM [TextTranslatorTests.news$news] WHERE Title = title1 Category:([TextContent] SELECT * FROM [TextTranslatorTests.news$news] WHERE Category:() ORDER | OP:Unspecified PageSize:0 TOP:0 Skip:0 ) ORDER | OP:Unspecified PageSize:0 TOP:0 Skip:0 ", TextTranslator.Translate(textQuery)); }
public virtual void Delete(Repository repository, MediaFolder mediaFolder, string uuid) { var mediaContent = mediaFolder.CreateQuery().WhereEquals("UUID", uuid).First(); Provider.Delete(mediaContent); }