private void TryAddAsset(BundleEntityWithAssets bundle, string webPath, string relativePath) { if (string.IsNullOrEmpty(webPath)) { return; } var realPath = _serverPaths.FullAppPath(webPath); var jsonAssetMan = new JsonAssets(); var asset1 = jsonAssetMan.Get(realPath, relativePath); bundle.Assets.Add(asset1); }
public HttpResponseMessage DownloadViewAsJson(int appId, int viewId) { var logCall = Log.Call($"{appId}, {viewId}"); SecurityHelpers.ThrowIfNotAdmin(_user); var app = _cmsManagerLazy.Value.ServiceProvider.Build <ImpExpHelpers>().Init(Log).GetAppAndCheckZoneSwitchPermissions(_site.ZoneId, appId, _user, _site.ZoneId); var cms = _cmsManagerLazy.Value.Init(app, Log); var bundle = new BundleEntityWithAssets { Entity = app.Data[Eav.ImportExport.Settings.TemplateContentType].One(viewId) }; // Attach files var view = new View(bundle.Entity, _site.CurrentCultureCode, Log); _appHelpers.Init(app, Log); if (!string.IsNullOrEmpty(view.Path)) { TryAddAsset(bundle, _appHelpers.ViewPath(view, PathTypes.PhysRelative), view.Path); var thumb = _appHelpers.IconPathOrNull(view, PathTypes.PhysRelative); if (thumb != null) { TryAddAsset(bundle, thumb, thumb); } } var serializer = _jsonBundleLazy.Value; serializer.Init(cms.AppState, Log); var serialized = serializer.Serialize(bundle, 0); logCall("ok"); return(Download.BuildDownload(serialized, ("View" + "." + bundle.Entity.GetBestTitle() + ImpExpConstants.Extension(ImpExpConstants.Files.json)) .RemoveNonFilenameCharacters())); }