using Microsoft.AspNetCore.Mvc; using Sarand.Net.Standard.Base.App; using Saxonite.Net.Standard.Base.App; using Saxonite.Web.Api.App; using static Sarand.Net.Standard.Base.Helpers.SacsHttpClientHelper; namespace Saxonite.Web.Api.Controllers { //======================================================================= [ApiController] public class SystemController : SwapiControllerBase { //------------------------------------------------------------------- // Construction. public SystemController() { } //------------------------------------------------------------------- // Version. public class RequestData_Version { } public class ResponseData_Version : ApiResponse_Data { public String? Version { get; set; } } [HttpGet] [Route("[controller]/Version")] public ResponseData_Version GetVersion_Get() { return GetVersion_Post(new RequestData_Version()); } [HttpPost] [Route("[controller]/Version")] public ResponseData_Version GetVersion_Post(RequestData_Version requestData) { ResponseData_Version responseData = new ResponseData_Version(); responseData.Version = Sax.Version.GetFullVersion(); return responseData; } //------------------------------------------------------------------- // Config. public class RequestData_Config { } public class ResponseData_Config : ApiResponse_Data { public class ConfigData { public String? Environment { get; set; } public String? Instance { get; set; } public String? Version { get; set; } public String? Host{ get; set; } public String? ConfigLogFolder { get; set; } public String? LogFolder { get; set; } public String? EmailContext { get; set; } } public ConfigData Config { get; } = new ConfigData(); } [HttpGet] [Route("[controller]/Config")] public ResponseData_Config GetConfig_Get() { return GetConfig_Post(new RequestData_Config()); } [HttpPost] [Route("[controller]/Config")] public ResponseData_Config GetConfig_Post(RequestData_Config requestData) { ResponseData_Config responseData = new ResponseData_Config(); responseData.Config.Environment = SaxApplication_Api.AppInstance?.EnvironmentName; responseData.Config.Instance = SaxApplication_Api.AppInstance?.InstanceType.ToString(); responseData.Config.Version = Sax.Version.GetFullVersion(); if (DebugMode) { // Just for testing - do not expose in production. responseData.Config.Host = SaxSystem.ComputerName; responseData.Config.ConfigLogFolder = SaxApplication_Api.AppInstance?.AppConfig.Logging.RootFolder; responseData.Config.LogFolder = SaLogger.LogFolder; responseData.Config.EmailContext = SaxApplication_Api.AppInstance?.EmailConfig.Context; } return responseData; } //------------------------------------------------------------------- } //======================================================================= }