using System; using InABox.Configuration; using InABox.Core; using Microsoft.Win32; using PRS.Shared; using PRSClasses; using PRSServer; namespace PRSServer { public class ServerSettings : /*RegistryConfigurationSettings, */ILocalConfigurationSettings { //public long Sequence { get; set; } public ServerType Type { get; set; } public string Properties { get; set; } public Server CreateServer(string key) { var result = new Server(); result.Key = key; result.Type = Type; //result.Sequence = Sequence == 0 ? DateTime.Now.Ticks : Sequence; var properties = DeserializeServerProperties(); if (properties != null) { result.Properties = properties; result.Name = result.Properties.Name; } result.CommitChanges(); return result; } public ServerProperties? DeserializeServerProperties() { switch (Type) { case ServerType.Database: return Serialization.Deserialize(Properties); case ServerType.GPS: return Serialization.Deserialize(Properties); case ServerType.AutoDiscovery: return Serialization.Deserialize(Properties); case ServerType.Schedule: return Serialization.Deserialize(Properties); case ServerType.Web: return Serialization.Deserialize(Properties); case ServerType.Certificate: return Serialization.Deserialize(Properties); case ServerType.HTTPProxy: return Serialization.Deserialize(Properties); case ServerType.WebSocketProxy: return Serialization.Deserialize(Properties); case ServerType.PipeProxy: return Serialization.Deserialize(Properties); default: return null; } } /*public override void Load(RegistryKey key) { Type = (ServerType)Enum.Parse(typeof(ServerType), key.GetValue("Type") as string); Properties = key.GetValue("Properties") as string; } public override void Save(RegistryKey key) { key.SetValue("Type", Type.ToString()); key.SetValue("Properties", Properties); }*/ } }