using InABox.Configuration; using InABox.Core; namespace Comal.Classes { public interface IAutoUpdateSettings { AutoUpdateType Type { get; set; } string Location { get; set; } AutoUpdateChannel Channel { get; set; } bool Elevated { get; set; } } public class AutoUpdateSettings : LocalConfigurationSettings, IAutoUpdateSettings { public AutoUpdateSettings() { Channel = AutoUpdateChannel.Stable; Type = AutoUpdateType.Url; Location = "https://prs-software.com.au/updates/prs"; Elevated = false; } public AutoUpdateChannel Channel { get; set; } public AutoUpdateType Type { get; set; } public string Location { get; set; } public bool Elevated { get; set; } public EditableAutoUpdateSettings ToEditable() { return new EditableAutoUpdateSettings { Channel = Channel, Type = Type, Location = Location, Elevated = Elevated }; } public void FromEditable(EditableAutoUpdateSettings editable) { Channel = editable.Channel; Type = editable.Type; Location = editable.Location; Elevated = editable.Elevated; } } [Caption("Auto Update Settings")] public class EditableAutoUpdateSettings : BaseObject, IAutoUpdateSettings { [EditorSequence(1)] [EnumLookupEditor(typeof(AutoUpdateType))] public AutoUpdateType Type { get; set; } [EditorSequence(2)] [TextBoxEditor] public string Location { get; set; } [EditorSequence(3)] [EnumLookupEditor(typeof(AutoUpdateChannel))] public AutoUpdateChannel Channel { get; set; } [EditorSequence(4)] [CheckBoxEditor] public bool Elevated { get; set; } } }