Пример #1
0
        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);
        }
Пример #2
0
        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()));
        }