| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 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<DatabaseServerProperties>(Properties);                case ServerType.GPS:                    return Serialization.Deserialize<GPSServerProperties>(Properties);                case ServerType.AutoDiscovery:                    return Serialization.Deserialize<AutoDiscoveryServerProperties>(Properties);                                case ServerType.Schedule:                    return Serialization.Deserialize<ScheduleServerProperties>(Properties);                                case ServerType.Web:                    return Serialization.Deserialize<WebServerProperties>(Properties);                                case ServerType.Certificate:                    return Serialization.Deserialize<CertificateEngineProperties>(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);        }*/    }}
 |