Exemple #1
0
        public IHttpActionResult GetThemeAsset(string assetId, string storeId, string themeId)
        {
            base.CheckCurrentUserHasPermissionForObjects(ContentPredefinedPermissions.Read, new ContentScopeObject {
                StoreId = storeId
            });

            var blobItem = _contentStorageProvider.GetBlobInfo("/Themes/" + storeId + "/" + themeId + "/" + assetId);

            if (blobItem != null)
            {
                var themeAsset = blobItem.ToThemeAssetWebModel();
                themeAsset.Id = assetId;
                using (var stream = _contentStorageProvider.OpenRead(blobItem.Url))
                {
                    var data = stream.ReadFully();
                    if (ContentTypeUtility.IsImageContentType(themeAsset.ContentType))
                    {
                        themeAsset.ByteContent = data;
                    }
                    else if (ContentTypeUtility.IsTextContentType(themeAsset.ContentType))
                    {
                        themeAsset.Content = Encoding.UTF8.GetString(data);
                    }
                }
                return(Ok(themeAsset));
            }
            return(NotFound());
        }
Exemple #2
0
        private void ReadContentFoldersRecurive(ContentFolder folder)
        {
            var result = _contentStorageProvider.Search(folder.Url, null);

            foreach (var blobFolder in result.Folders)
            {
                //Do not export default theme its will distributed with code
                if (blobFolder.Url != "/Themes/default")
                {
                    var contentFolder = new ContentFolder()
                    {
                        Url = blobFolder.Url
                    };
                    ReadContentFoldersRecurive(contentFolder);
                    folder.Folders.Add(contentFolder);
                }
            }

            foreach (var blobItem in result.Items)
            {
                var contentFile = new ContentFile
                {
                    Url = blobItem.Url
                };
                using (var stream = _contentStorageProvider.OpenRead(blobItem.Url))
                {
                    contentFile.Data = stream.ReadFully();
                }
                folder.Files.Add(contentFile);
            }
        }
        public IHttpActionResult GetPage(string storeId, string language, string pageName)
        {
            CheckCurrentUserHasPermissionForObjects(ContentPredefinedPermissions.Read, new ContentScopeObject {
                StoreId = storeId
            });

            var blobItem = _contentStorageProvider.GetBlobInfo("/Pages/" + storeId + "/" + pageName);

            if (blobItem != null)
            {
                var page = blobItem.ToPageWebModel();
                page.Id = "/" + pageName;
                using (var stream = _contentStorageProvider.OpenRead(blobItem.Url))
                {
                    var data = stream.ReadFully();
                    if (ContentTypeUtility.IsImageContentType(page.ContentType))
                    {
                        page.ByteContent = data;
                    }
                    else if (ContentTypeUtility.IsTextContentType(page.ContentType))
                    {
                        page.Content = Encoding.UTF8.GetString(data);
                    }
                }
                return(Ok(page));
            }

            return(NotFound());
        }
Exemple #4
0
        private void ReadContentFoldersRecurive(ContentFolder folder)
        {
            var result = _contentStorageProvider.Search(folder.Url, null);

            foreach (var blobFolder in result.Folders)
            {
                var contentFolder = new ContentFolder()
                {
                    Url = blobFolder.Url
                };
                ReadContentFoldersRecurive(contentFolder);
                folder.Folders.Add(contentFolder);
            }

            foreach (var blobItem in result.Items)
            {
                var contentFile = new ContentFile
                {
                    Url = blobItem.Url
                };
                using (var stream = _contentStorageProvider.OpenRead(blobItem.Url))
                {
                    contentFile.Data = stream.ReadFully();
                }
                folder.Files.Add(contentFile);
            }
        }
        private void ReadContentFoldersRecurive(ContentFolder folder, Action <ExportImportProgressInfo> progressCallback)
        {
            var result = _contentStorageProvider.Search(folder.Url, null);

            foreach (var blobFolder in result.Folders)
            {
                //Do not export default theme its will distributed with code
                if (blobFolder.Url != "/Themes/default")
                {
                    var contentFolder = new ContentFolder()
                    {
                        Url = blobFolder.Url
                    };

                    ReadContentFoldersRecurive(contentFolder, progressCallback);
                    folder.Folders.Add(contentFolder);
                }
            }

            foreach (var blobItem in result.Items)
            {
                var progressInfo = new ExportImportProgressInfo();
                progressInfo.Description = String.Format("Read {0}", blobItem.Url);
                progressCallback(progressInfo);

                var contentFile = new ContentFile
                {
                    Url = blobItem.Url
                };
                using (var stream = _contentStorageProvider.OpenRead(blobItem.Url))
                {
                    contentFile.Data = stream.ReadFully();
                }
                folder.Files.Add(contentFile);
            }
        }