using System.Collections.Generic; using Newtonsoft.Json; using Newtonsoft.Json.Converters; namespace PepperDash.Essentials { /// /// Represents a MobileControlConfig /// public class MobileControlConfig { /// /// Gets or sets the ServerUrl /// [JsonProperty("serverUrl")] public string ServerUrl { get; set; } /// /// Gets or sets the ClientAppUrl /// [JsonProperty("clientAppUrl")] public string ClientAppUrl { get; set; } /// /// Gets or sets the DirectServer /// [JsonProperty("directServer")] public MobileControlDirectServerPropertiesConfig DirectServer { get; set; } /// /// Gets or sets the ApplicationConfig /// [JsonProperty("applicationConfig")] public MobileControlApplicationConfig ApplicationConfig { get; set; } = null; /// /// Gets or sets the EnableApiServer /// [JsonProperty("enableApiServer")] public bool EnableApiServer { get; set; } = true; } /// /// Represents a MobileControlDirectServerPropertiesConfig /// public class MobileControlDirectServerPropertiesConfig { /// /// Gets or sets the EnableDirectServer /// [JsonProperty("enableDirectServer")] public bool EnableDirectServer { get; set; } /// /// Gets or sets the Port /// [JsonProperty("port")] public int Port { get; set; } /// /// Gets or sets the Logging /// [JsonProperty("logging")] public MobileControlLoggingConfig Logging { get; set; } /// /// Gets or sets the AutomaticallyForwardPortToCSLAN /// [JsonProperty("automaticallyForwardPortToCSLAN")] public bool? AutomaticallyForwardPortToCSLAN { get; set; } /// /// Gets or sets the CSLanUiDeviceKeys /// /// /// A list of device keys for the CS LAN UI. These devices will get the CS LAN IP address instead of the LAN IP Address /// [JsonProperty("csLanUiDeviceKeys")] public List CSLanUiDeviceKeys { get; set; } /// /// Initializes a new instance of the MobileControlDirectServerPropertiesConfig class. /// public MobileControlDirectServerPropertiesConfig() { Logging = new MobileControlLoggingConfig(); } } /// /// Represents a MobileControlLoggingConfig /// public class MobileControlLoggingConfig { /// /// Gets or sets the EnableRemoteLogging /// [JsonProperty("enableRemoteLogging")] public bool EnableRemoteLogging { get; set; } /// /// Gets or sets the Host /// [JsonProperty("host")] public string Host { get; set; } /// /// Gets or sets the Port /// [JsonProperty("port")] public int Port { get; set; } } /// /// Represents a MobileControlRoomBridgePropertiesConfig /// public class MobileControlRoomBridgePropertiesConfig { /// /// Gets or sets the Key /// [JsonProperty("key")] public string Key { get; set; } /// /// Gets or sets the RoomKey /// [JsonProperty("roomKey")] public string RoomKey { get; set; } } /// /// Represents a MobileControlSimplRoomBridgePropertiesConfig /// public class MobileControlSimplRoomBridgePropertiesConfig { /// /// Gets or sets the EiscId /// [JsonProperty("eiscId")] public string EiscId { get; set; } } /// /// Represents a MobileControlApplicationConfig /// public class MobileControlApplicationConfig { /// /// Gets or sets the ApiPath /// [JsonProperty("apiPath")] public string ApiPath { get; set; } /// /// Gets or sets the GatewayAppPath /// [JsonProperty("gatewayAppPath")] public string GatewayAppPath { get; set; } /// /// Gets or sets the EnableDev /// [JsonProperty("enableDev")] public bool? EnableDev { get; set; } /// /// Gets or sets the LogoPath /// [JsonProperty("logoPath")] public string LogoPath { get; set; } /// /// Gets or sets the IconSet /// [JsonProperty("iconSet")] [JsonConverter(typeof(StringEnumConverter))] public MCIconSet? IconSet { get; set; } /// /// Gets or sets the LoginMode /// [JsonProperty("loginMode")] public string LoginMode { get; set; } /// /// Gets or sets the Modes /// [JsonProperty("modes")] public Dictionary Modes { get; set; } /// /// Gets or sets the Logging /// [JsonProperty("enableRemoteLogging")] public bool Logging { get; set; } /// /// Gets or sets the PartnerMetadata /// [JsonProperty("partnerMetadata", NullValueHandling = NullValueHandling.Ignore)] public List PartnerMetadata { get; set; } } /// /// Represents a MobileControlPartnerMetadata /// public class MobileControlPartnerMetadata { /// /// Gets or sets the Role /// [JsonProperty("role")] public string Role { get; set; } /// /// Gets or sets the Description /// [JsonProperty("description")] public string Description { get; set; } /// /// Gets or sets the LogoPath /// [JsonProperty("logoPath")] public string LogoPath { get; set; } } /// /// Represents a McMode /// public class McMode { /// /// Gets or sets the ListPageText /// [JsonProperty("listPageText")] public string ListPageText { get; set; } /// /// Gets or sets the LoginHelpText /// [JsonProperty("loginHelpText")] public string LoginHelpText { get; set; } /// /// Gets or sets the PasscodePageText /// [JsonProperty("passcodePageText")] public string PasscodePageText { get; set; } } /// /// Enumeration of MCIconSet values /// public enum MCIconSet { /// /// Google icon set /// GOOGLE, /// /// Habanero icon set /// HABANERO, /// /// Neo icon set /// NEO } }