using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace InitializerModel { public class EvseSettingConfigCompatableModel { public string ModelName { get; set; } public bool IsModelNameLength15 => string.IsNullOrEmpty(ModelName) ? false : ModelName.Length == 15; public string FourGenModuleVersion { get; set; } public string SubFourGenModuleVersion { get; set; } public bool IsSimInsert { get; set; } [Obsolete] public string ICCID { get; set; } [Obsolete] public string IMSI { get; set; } public string SimICCID { get; set; } public string SimIMSI { get; set; } public bool IsSubSimInsert { get; set; } public string SubSimICCID { get; set; } public string SubSimIMSI { get; set; } public ButtonTestCompatableModeType ButtonTestMode { get; set; } [Obsolete] public bool SkipEmergencyButton { get; set; } [Obsolete] public bool SkipButtonTest { get; set; } public string IpAddress { get; set; } public bool IsDisableAuthRequired { get; set; } public bool IsIdleCheckPass { get; set; } public List FirmwareUpdateList { get; set; } public List PreFlashFirmwareUpdateList { get; set; } public EvseSettingConfigModel ToEvseSettingConfigModel() { var simICCID = string.IsNullOrEmpty(SimICCID) ? ICCID : SimICCID; var simIMSI = string.IsNullOrEmpty(SimICCID) ? IMSI : SimIMSI; var buttonTestMode = ButtonTestMode; if (SkipEmergencyButton) { buttonTestMode = ButtonTestCompatableModeType.TwoButtons; } if (SkipButtonTest) { buttonTestMode = ButtonTestCompatableModeType.SkipButtonTest; } var ipAddress = string.IsNullOrEmpty(IpAddress) ? "192.168.1.10" : IpAddress; return new EvseSettingConfigModel() { ModelName = ModelName, FourGenModuleVersion = FourGenModuleVersion, SubFourGenModuleVersion = SubFourGenModuleVersion, IsSimInsert = IsSimInsert, SimICCID = simICCID, SimIMSI = simIMSI, IsSubSimInsert = IsSubSimInsert, SubSimICCID = SubSimICCID, SubSimIMSI = SubSimIMSI, ButtonTestMode = GetButtonTestModeType(buttonTestMode), IpAddress = ipAddress, IsDisableAuthRequired = IsDisableAuthRequired, IsIdleCheckPass = IsIdleCheckPass, FirmwareUpdateList = FirmwareUpdateList, PreFlashFirmwareUpdateList = PreFlashFirmwareUpdateList }; } private ButtonTestModeType GetButtonTestModeType(ButtonTestCompatableModeType source) { ButtonTestModeType toReturn = ButtonTestModeType.TwoButtonsWithEmergencyButton; switch (source) { case ButtonTestCompatableModeType.TwoButtonsWithEmergencyButton: case ButtonTestCompatableModeType.All: toReturn = ButtonTestModeType.TwoButtonsWithEmergencyButton; break; case ButtonTestCompatableModeType.SkipButtonTest: toReturn = ButtonTestModeType.SkipButtonTest; break; case ButtonTestCompatableModeType.EmergencyButtonOnly: case ButtonTestCompatableModeType.SkipNormalButton: toReturn = ButtonTestModeType.EmergencyButtonOnly; break; case ButtonTestCompatableModeType.TwoButtons: case ButtonTestCompatableModeType.SkipEmergencyButton: toReturn= ButtonTestModeType.TwoButtons; break; case ButtonTestCompatableModeType.ThreeButtonsWithEmergencyButton: toReturn = ButtonTestModeType.ThreeButtonsWithEmergencyButton; break; }; return toReturn; } } public enum ButtonTestCompatableModeType { TwoButtonsWithEmergencyButton, SkipButtonTest, EmergencyButtonOnly, TwoButtons, ThreeButtonsWithEmergencyButton, All, SkipNormalButton, SkipEmergencyButton } }