src/ZKEACMS/Widget/WidgetPackageInstaller.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/* http://www.zkea.net/ 
 * Copyright (c) ZKEASOFT. All rights reserved. 
 * http://www.zkea.net/licenses */

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using ZKEACMS.PackageManger;
using Microsoft.AspNetCore.Hosting;
using Easy.Modules.DataDictionary;

namespace ZKEACMS.Widget
{
    public class WidgetPackageInstaller : FilePackageInstaller
    {
        public WidgetPackageInstaller(IWebHostEnvironment hostingEnvironment) : base(hostingEnvironment)
        {
        }

        public override string PackageInstaller
        {
            get
            {
                return "WidgetPackageInstaller";
            }
        }
        public override object Install(Package package)
        {
            base.Install(package);
            var widgetPackage = package as WidgetPackage;
            if (widgetPackage != null)
            {
                if (widgetPackage.Widget != null)
                {
                    var widget = Easy.Serializer.JsonConverter.Deserialize(JObject.Parse(package.Content.ToString()).GetValue("Widget").ToString(), widgetPackage.Widget.GetViewModelType()) as WidgetBase;
                    widget.PageId = null;
                    widget.LayoutId = null;
                    widget.ZoneId = null;
                    widget.IsSystem = false;
                    widget.IsTemplate = true;
                    return widget;
                }
            }
            return null;
        }
        public override Package Pack(object obj)
        {
            //obj is widget
            var package = base.Pack(GetWidgetFiles());
            (package as WidgetPackage).Widget = obj as WidgetBase;
            return package;
        }
        public override FilePackage CreatePackage()
        {
            return new WidgetPackage(PackageInstaller);
        }
后面还有 58 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。