PageRenderTime 40ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/BlogEngine/BlogEngine.NET/admin/Extensions/Settings.aspx.cs

#
C# | 56 lines | 45 code | 7 blank | 4 comment | 10 complexity | 8f4d65dd01655a72eefd71e120688244 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0, BSD-3-Clause
  1. namespace Admin.Extensions
  2. {
  3. using System;
  4. using System.Linq;
  5. using System.Collections.Generic;
  6. using BlogEngine.Core;
  7. using BlogEngine.Core.Web.Extensions;
  8. public partial class Settings : System.Web.UI.Page
  9. {
  10. protected List<ManagedExtension> ExtensionList()
  11. {
  12. var extensions = ExtensionManager.Extensions.Where(x => x.Key != "MetaExtension").ToList();
  13. if (!Blog.CurrentInstance.IsPrimary)
  14. extensions = extensions.Where(x => x.Value.SubBlogEnabled == true).ToList();
  15. extensions.Sort(
  16. (e1, e2) => e1.Value.Priority == e2.Value.Priority ? string.CompareOrdinal(e1.Key, e2.Key) : e1.Value.Priority.CompareTo(e2.Value.Priority));
  17. List<ManagedExtension> manExtensions = new List<ManagedExtension>();
  18. foreach (KeyValuePair<string, ManagedExtension> ext in extensions)
  19. {
  20. var oExt = ExtensionManager.GetExtension(@ext.Key);
  21. manExtensions.Add(oExt);
  22. }
  23. return manExtensions;
  24. }
  25. /// <summary>
  26. /// Raises the <see cref="E:System.Web.UI.Control.Init"/> event to initialize the page.
  27. /// </summary>
  28. /// <param name="e">An <see cref="T:System.EventArgs"/> that contains the event data.</param>
  29. protected override void OnInit(EventArgs e)
  30. {
  31. Security.DemandUserHasRight(Rights.AccessAdminPages, true);
  32. var extname = Request.QueryString["ext"];
  33. var extension = ExtensionList().Where(x => x.Name == extname).FirstOrDefault();
  34. if (extension != null && extension.BlogSettings.Count > 0)
  35. {
  36. foreach (var s in extension.BlogSettings)
  37. {
  38. if (!string.IsNullOrEmpty(s.Name) && !s.Hidden)
  39. {
  40. var uc = (UserControlSettings)Page.LoadControl("Settings.ascx");
  41. uc.ID = s.Name;
  42. ucPlaceHolder.Controls.Add(uc);
  43. }
  44. }
  45. }
  46. base.OnInit(e);
  47. }
  48. }
  49. }