Ejemplo n.º 1
0
        protected virtual bool IfUserKeyExists(ContentBase content, string userKey)
        {
            var repository = new Repository(content.Repository);

            if (content is TextContent)
            {
                var textContent   = (TextContent)content;
                var schema        = new Schema(repository, textContent.SchemaName);
                var contentExists = schema.CreateQuery().WhereEquals("UserKey", userKey).FirstOrDefault();
                if (contentExists != null)
                {
                    return(contentExists.UUID != content.UUID);
                }
                return(false);
            }
            else if (content is MediaContent)
            {
                var mediaContent  = (MediaContent)content;
                var folder        = new MediaFolder(repository, mediaContent.FolderName);
                var contentExists = folder.CreateQuery().WhereEquals("UserKey", userKey).FirstOrDefault();
                if (contentExists != null)
                {
                    return(contentExists.UUID != content.UUID);
                }
                return(false);
            }
            return(false);
        }
Ejemplo n.º 2
0
        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
                };
                Provider.SaveContentStream(old, fileStream);
            }

            binaryContent.Metadata = metadata;
            Provider.Update(binaryContent, old);

            return binaryContent;
        }
Ejemplo n.º 3
0
 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; });
 }
Ejemplo n.º 4
0
 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);
     }
 }
Ejemplo n.º 5
0
 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;
 }
Ejemplo n.º 6
0
 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);
         }
     }
 }
Ejemplo n.º 7
0
 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();
     }
 }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
 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;
 }
Ejemplo n.º 10
0
 public int Count(string repositoryName, string folderName, string prefix)
 {
     var mediaFolder = new MediaFolder(new Repository(repositoryName), folderName);
     return mediaFolder.CreateQuery().WhereContains("FileName", prefix)
         .Count();
 }
Ejemplo n.º 11
0
 protected virtual bool IfUserKeyExists(ContentBase content, string userKey)
 {
     var repository = new Repository(content.Repository);
     if (content is TextContent)
     {
         var textContent = (TextContent)content;
         var schema = new Schema(repository, textContent.SchemaName);
         var contentExists = schema.CreateQuery().WhereEquals("UserKey", userKey).FirstOrDefault();
         if (contentExists != null)
         {
             return contentExists.UUID != content.UUID;
         }
         return false;
     }
     else if (content is MediaContent)
     {
         var mediaContent = (MediaContent)content;
         var folder = new MediaFolder(repository, mediaContent.FolderName);
         var contentExists = folder.CreateQuery().WhereEquals("UserKey", userKey).FirstOrDefault();
         if (contentExists != null)
         {
             return contentExists.UUID != content.UUID;
         }
         return false;
     }
     return false;
 }
Ejemplo n.º 12
0
        public virtual void Delete(Repository repository, MediaFolder mediaFolder, string uuid)
        {
            var mediaContent = mediaFolder.CreateQuery().WhereEquals("UUID", uuid).First();
            Provider.Delete(mediaContent);

        }