コード例 #1
0
        public IActionResult Themes()
        {
            var model = new AdminPackagesModel { Profile = GetProfile() };
            model.Packages = new List<PackageListItem>();

            return View($"{_theme}Packages/Themes.cshtml", model);
        }
コード例 #2
0
 public async Task<IActionResult> Widgets()
 {
     var model = new AdminPackagesModel {
         Profile = GetProfile(),
         Packages = await _pkgs.Find(PackageType.Widgets)
     };
     return View($"{_theme}Packages/Widgets.cshtml", model);
 }
コード例 #3
0
        public IActionResult Packages(string packageType = "Widgets")
        {
            var type  = packageType.ToLower();
            var model = new AdminPackagesModel {
                Profile = GetProfile()
            };

            model.Packages = new List <PackageListItem>();

            if (type == "widgets")
            {
                foreach (var assembly in Configuration.GetAssemblies())
                {
                    var name = assembly.GetName().Name;

                    if (name != "Blogifier.Core")
                    {
                        var path = $"~/Views/Shared/Components/{name}/Settings.cshtml";
                        var view = _engine.GetView("", path, false);

                        var item = new PackageListItem
                        {
                            Title       = name,
                            Description = name,
                            Version     = assembly.GetName().Version.ToString()
                        };

                        try
                        {
                            Type t = assembly.GetType("PackageInfo");
                            if (t != null)
                            {
                                var info = (IPackageInfo)Activator.CreateInstance(t);
                                item = info.GetAttributes();
                            }
                        }
                        catch { }

                        var disabled = Disabled();

                        item.Description = item.Description.Length > 50 ? item.Description.Substring(0, 50) + "..." : item.Description;
                        item.HasSettings = view.Success;
                        item.Enabled     = disabled == null || !disabled.Contains(name);
                        model.Packages.Add(item);
                    }
                }
            }

            return(View($"{_theme}Packages/Widgets.cshtml", model));
        }