using DotNetNuke.Web.Api; using System.IO; using System.Net.Http; using System.Net; using System.Web.Http; namespace Bring2mind.DnnConnect2025Demo.SysMonitor { public class SysController : DnnApiController, IServiceRouteMapper { private const string apiKey = "SysMonitor"; private readonly DotNetNuke.Abstractions.Application.IApplicationStatusInfo applicationStatusInfo; private readonly DotNetNuke.Abstractions.Application.IApplicationInfo applicationInfo; public SysController(DotNetNuke.Abstractions.Application.IApplicationStatusInfo applicationStatusInfo, DotNetNuke.Abstractions.Application.IApplicationInfo applicationInfo) { this.applicationStatusInfo = applicationStatusInfo; this.applicationInfo = applicationInfo; } public void RegisterRoutes(IMapRoute mapRouteManager) { mapRouteManager.MapHttpRoute( "Bring2mind/SysMonitor", "Bring2mindSysMonitorMap1", "Sys/{action}", new { Controller = "Sys" }, null, new[] { "Bring2mind.DnnConnect2025Demo.SysMonitor" }); } [HttpGet] [ApiTokenAuthorize(apiKey, "", DotNetNuke.Web.Api.Auth.ApiTokens.Models.ApiTokenScope.Host)] public HttpResponseMessage WebConfigMd5() { return Request.CreateResponse(HttpStatusCode.OK, SysMethods.GetWebConfigMd5(Path.Combine(applicationStatusInfo.ApplicationMapPath, "web.config"))); } } }