Ejemplo n.º 1
0
        //public string GetDefaultContent(string path)
        //{
        //    string viewPath = DEFAULT_VIEW_PATH + path;
        //    var fileContents = VirtualPathProviderHelper.Load(viewPath);
        //    return fileContents;
        //}

        public ThemeAsset Find(List <string> assetKeys)
        {
            var        store = new StoreService().GetStore();
            ThemeAsset asset = null;

            var request = new RestRequest("/themes/{themeId}/assets/find", Method.GET);

            request.AddUrlSegment("themeId", store.ActiveThemeId.ToString());

            if (assetKeys != null)
            {
                request.AddParameter("keys", string.Join(",", assetKeys));
            }

            var response = ApiClient.Execute <ThemeAssetResponse>(request);

            switch (response.StatusCode)
            {
            case HttpStatusCode.OK:
                asset = response.Data.Asset;
                break;
            }

            return(asset);
        }
Ejemplo n.º 2
0
        public IHttpActionResult SaveItem(ThemeAsset asset, string storeId, string themeId)
        {
            base.CheckCurrentUserHasPermissionForObjects(ContentPredefinedPermissions.Update, new ContentScopeObject {
                StoreId = storeId
            });

            var data = asset.ByteContent;

            if (!string.IsNullOrEmpty(asset.AssetUrl))
            {
                using (var webClient = new WebClient())
                {
                    data = webClient.DownloadData(asset.AssetUrl);
                }
            }
            else if (data == null)
            {
                data = Encoding.UTF8.GetBytes(asset.Content);
            }
            using (var stream = _contentStorageProvider.OpenWrite("/Themes/" + storeId + "/" + themeId + "/" + asset.Id))
                using (var memStream = new MemoryStream(data))
                {
                    memStream.CopyTo(stream);
                }

            return(this.Ok());
        }
Ejemplo n.º 3
0
        public static ThemeAsset AsWebModel(this Data.ThemeAsset asset)
        {
            var ret = new ThemeAsset();

            ret.InjectFrom(asset);
            return(ret);
        }
        public static SyncAsset ToSyncModel(this ThemeAsset item)
        {
            var retVal = new SyncAsset();

            retVal.InjectFrom(item);
            return(retVal);
        }
Ejemplo n.º 5
0
        public static ContentItem AsContentItem(this ThemeAsset asset)
        {
            var retVal = new ContentItem {
                Path = asset.Id, ByteContent = asset.ByteContent, ContentType = asset.ContentType, Name = Path.GetFileName(asset.AssetName)
            };

            return(retVal);
        }
Ejemplo n.º 6
0
        public static ThemeAsset AsThemeAsset(this ContentItem item)
        {
            var retVal = new ThemeAsset {
                Id = item.Path, ByteContent = item.ByteContent, ContentType = item.ContentType, Updated = item.ModifiedDate.HasValue ? RemoveMilliseconds(item.ModifiedDate.Value) : RemoveMilliseconds(item.CreatedDate)
            };

            return(retVal);
        }
Ejemplo n.º 7
0
        public static ThemeAsset AsThemeAsset(this ContentItem item)
        {
            var retVal = new ThemeAsset {
                Id = item.Path, ByteContent = item.ByteContent, ContentType = item.ContentType, Updated = item.ModifiedDate.HasValue ? item.ModifiedDate.Value : item.CreatedDate
            };

            return(retVal);
        }
Ejemplo n.º 8
0
        public IHttpActionResult SaveItem(ThemeAsset asset, string storeId, string themeId)
        {
            if (!string.IsNullOrEmpty(asset.AssetUrl))
            {
                var filePath = string.Format("{0}{1}", _pathForFiles, asset.AssetUrl);
                asset.ByteContent = File.ReadAllBytes(filePath);
            }

            this._themeService.SaveThemeAsset(storeId, themeId, asset.ToDomainModel());
            return(this.Ok());
        }
Ejemplo n.º 9
0
        public IHttpActionResult SaveItem(ThemeAsset asset, string storeId, string themeId)
        {
            base.CheckCurrentUserHasPermissionForObjects(ContentPredefinedPermissions.Update, new ContentScopeObject {
                StoreId = storeId
            });

            if (!string.IsNullOrEmpty(asset.AssetUrl))
            {
                using (var webClient = new WebClient())
                {
                    asset.ByteContent = webClient.DownloadData(asset.AssetUrl);
                }
            }

            this._themeService.SaveThemeAsset(storeId, themeId, asset.ToDomainModel());
            return(this.Ok());
        }
Ejemplo n.º 10
0
 public ThemeAsset GetByKey(string assetKey, int themeId)
 {
     try
     {
         var themeAsset = new ThemeAsset();
         var request    = new RestRequest("/themes/{themeId}/assets", Method.GET);
         request.AddUrlSegment("themeId", themeId.ToString());
         request.AddParameter("key", assetKey);
         var response = ApiClient.Execute <ThemeAssetResponse>(request);
         if (response.StatusCode == HttpStatusCode.OK)
         {
             themeAsset = response.Data.Asset;
             return(themeAsset);
         }
     }
     catch
     {
     }
     return(null);
 }
Ejemplo n.º 11
0
        public void UploadTheme(string storeId, string themeName, System.IO.Compression.ZipArchive archive)
        {
            foreach (ZipArchiveEntry entry in archive.Entries)
            {
                if (!IsFolder(entry))
                {
                    using (var stream = entry.Open())
                    {
                        var asset = new ThemeAsset
                        {
                            AssetName = PrepareAssetNameAndId(entry.FullName),
                            Id        = PrepareAssetNameAndId(entry.FullName)
                        };

                        var arr = ReadFully(stream);
                        asset.ByteContent = arr;
                        asset.ContentType = ContentTypeUtility.GetContentType(entry.FullName, arr);

                        SaveThemeAsset(storeId, themeName.Trim('/'), asset);
                    }
                }
            }
        }