Files
cms_thermo_active/Step.Config/StartupConfigController.cs
T
CMS4390\marantalu 46c34f46e8 * Fixed webapi auth
* WIP signalauth
* Fist commit server config
2017-11-28 17:19:01 +01:00

97 lines
3.4 KiB
C#

using System.Xml;
using System.Collections.Generic;
using System;
using System.Xml.Schema;
using System.Xml.Linq;
using System.Linq;
using static Step.Config.StartupConfig;
using Step.Model.ConfigModels;
namespace Step.Config
{
public class StartupConfigController
{
public static void ReadStartUpConfig()
{
// Read validation file
XmlSchemaSet readerSettings = new XmlSchemaSet();
// Add Schema
readerSettings.Add(null, "startupValidator.xsd");
// Open file reader
XDocument xmlConfigFile = XDocument.Load("startupConfig.xml");
// Validate file
xmlConfigFile.Validate(readerSettings, ValidationHandler);
// Read generic config with LINQ
genericConfig = xmlConfigFile
.Descendants("generalConfig")
.Select(x => new GenericConfigModel()
{
Language = x.Element("language").Value,
ServerPort = Convert.ToInt32(x.Element("serverPort").Value),
NcVendor = Convert.ToInt32(x.Element("NcVendor").Value),
NcIpAddress = x.Element("NcIpAddress").Value,
NcPort = Convert.ToInt32(x.Element("NcPort").Value)
}).FirstOrDefault();
xmlConfigFile
.Descendants("areasConfig")
.Elements()
.ToList()
.ForEach(x => addKeyValue(x));
}
private static void addKeyValue(XElement element)
{
switch (element.Name.ToString())
{
case "production":
SetAreasConfigValue(ref productionConfig, element);
break;
case "tooling":
SetAreasConfigValue(ref toolingConfig, element);
break;
case "report":
SetAreasConfigValue(ref reportConfig, element);
break;
case "alarms":
SetAreasConfigValue(ref alarmsConfig, element);
break;
case "maintenance":
SetAreasConfigValue(ref maintenanceConfig, element);
break;
case "utilities":
SetAreasConfigValue(ref utilitiesConfig, element);
break;
case "scada":
SetAreasConfigValue(ref scadaConfig, element);
break;
}
}
private static void SetAreasConfigValue (ref AreasConfigModel areasConfig, XElement element)
{
areasConfig = new AreasConfigModel()
{
name = element.Name.ToString(),
enabled = Convert.ToBoolean(element.Element("enabled").Value),
allowExternalBrowser = Convert.ToBoolean(element.Element("allowExternalBrowser").Value)
};
}
private static void ValidationHandler(object sender, ValidationEventArgs e)
{
if (e.Severity == XmlSeverityType.Warning)
{
Console.Write("WARNING: ");
Console.WriteLine(e.Message);
}
else if (e.Severity == XmlSeverityType.Error)
{
Console.Write("ERROR: ");
Console.WriteLine(e.Message);
}
}
}
}