Files
cms_thermo_active/Step/Controllers/WebApi/ConfigurationController.cs
T
2018-03-22 16:17:23 +01:00

105 lines
3.5 KiB
C#

using Step.Model.ConfigModels;
using Step.Model.DTOModels;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using static Step.Config.ServerConfig;
using static Step.Model.Constants;
namespace Step.Controllers.WebApi
{
[RoutePrefix("api/configuration")]
public class ConfigurationController : ApiController
{
[Route("areas"), HttpGet]
public IHttpActionResult GetStartupConfiguration()
{
DTOStartupConfigurationModel startupConfiguration = new DTOStartupConfigurationModel()
{
ProductionConfig = ProductionConfig,
AlarmsConfig = AlarmsConfig,
ScadaConfig = ScadaConfig,
MaintenanceConfig = MaintenanceConfig,
ReportConfig = ReportConfig,
ToolingConfig = ToolingConfig,
UtilitiesConfig = UtilitiesConfig
};
return Ok(startupConfiguration);
}
[Route("client"), HttpGet]
public IHttpActionResult GetInfoConfiguration()
{
DTOClientConfigurationModel clientConfiguration = new DTOClientConfigurationModel()
{
NcVendor = NcConfig.NcVendor,
ShowHMI = NcConfig.showNcHMI,
DefaultLanguage = ServerStartupConfig.Language,
NcIp = NcConfig.NcIpAddress,
NcPort = NcConfig.NcPort
};
return Ok(clientConfiguration);
}
[Route("nc_softKeys"), HttpGet]
public IHttpActionResult GetNcSoftKeysConfig()
{
return Ok(NcSoftKeysConfig);
}
[Route("softKeys"), HttpGet]
public IHttpActionResult GetUserSoftKeysConfig()
{
Dictionary<int, List<DTOUserSoftKeyConfigModel>> output = new Dictionary<int, List<DTOUserSoftKeyConfigModel>>();
foreach (var softKey in SoftKeysConfig)
{
// Check if category exists
if (!output.ContainsKey(softKey.Category))
{
// Add category if not exits
output.Add(softKey.Category, new List< DTOUserSoftKeyConfigModel>());
}
// Create subkeys dictionary for group
Dictionary<int, string> tmpSubKey = new Dictionary<int, string>();
if (softKey.Type == SOFTKEY_TYPE.GROUP && softKey.SubKeys != null)
{
tmpSubKey = new Dictionary<int, string>();
foreach (var subKey in softKey.SubKeys)
{
tmpSubKey.Add(subKey.Id, subKey.Text);
}
}
// Add to the category the new softkey
output[softKey.Category].Add(new DTOUserSoftKeyConfigModel()
{
Id = softKey.Id,
Category = softKey.Category,
OperatorConfirmationNeeded = softKey.OperatorConfirmationNeeded,
Type = softKey.Type,
SubKeys = tmpSubKey
});
}
return Ok(output);
}
[Route("heads"), HttpGet]
public IHttpActionResult GetHeadConfig()
{
List<DTOHeadsConfigModel> heads = HeadsConfig.Select(x => new DTOHeadsConfigModel()
{
Id = x.Id,
Name = x.Name,
Type = x.Type.ToString()
}).ToList();
return Ok(heads);
}
}
}