46c34f46e8
* WIP signalauth * Fist commit server config
97 lines
3.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|