using System; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using DTS.Common.Base; using DTS.Common.Enums.Hardware; using DTS.Common.Interface.Hardware.AddEditHardware; using DTS.Common.Utilities.Logging; namespace HardwareList.Model { public class DASModule : BasePropertyChanged, IAddEditHardwareDASModule { public bool Disabled { get; set; } = false; private SLICEBridgeTypes _sliceBridgeType = SLICEBridgeTypes.Bridge; public SLICEBridgeTypes SLICEBridgeType { get => _sliceBridgeType; set { SetProperty(ref _sliceBridgeType, value, "SLICEBridgeType"); SetImage(); } } private HardwareTypes _moduleType = HardwareTypes.UNDEFINED; public HardwareTypes ModuleType { get => _moduleType; set { SetProperty(ref _moduleType, value, "ModuleType"); SetImage(); } } private string _serialNumber = ""; public string SerialNumber { get => _serialNumber; set => SetProperty(ref _serialNumber, value, "SerialNumber"); } private ImageSource _dasImage = null; public ImageSource DASImage { get => _dasImage; set => SetProperty(ref _dasImage, value, "DASImage"); } private static readonly SLICEBridgeTypes[] _availableNanoBridges = new SLICEBridgeTypes[] { SLICEBridgeTypes.Bridge, SLICEBridgeTypes.IEPE }; public SLICEBridgeTypes[] AvailableNanoBridges => _availableNanoBridges; private static readonly SLICEBridgeTypes[] _availableMicroBridges = new SLICEBridgeTypes[] { SLICEBridgeTypes.Bridge, SLICEBridgeTypes.IEPE, SLICEBridgeTypes.ARS, SLICEBridgeTypes.ACC }; public SLICEBridgeTypes[] AvailableMicroBridges => _availableMicroBridges; private static readonly HardwareTypes[] _availableRackModules = new HardwareTypes[] { HardwareTypes.UNDEFINED, HardwareTypes.SIM, HardwareTypes.TOM, HardwareTypes.DIM }; public HardwareTypes[] AvailableRACKModules => _availableRackModules; /// /// Uri for finding images using the application resources /// private static readonly Uri _baseUri = new Uri("pack://application:,,,/ResourceFile.xaml"); private void SetImage() { var fileName = string.Empty; switch (ModuleType) { case HardwareTypes.SLICE_Bridge: switch (SLICEBridgeType) { case SLICEBridgeTypes.ACC: fileName = @"Assets/Hardware/SLICEACC_Side.png"; break; case SLICEBridgeTypes.ARS: fileName = @"Assets/Hardware/SLICEARS_Side.png"; break; case SLICEBridgeTypes.Bridge: fileName = @"Assets/Hardware/SLICEBridge_Side.png"; break; case SLICEBridgeTypes.IEPE: fileName = @"Assets/Hardware/SLICEIEPE_Side.png"; break; } break; case HardwareTypes.TOM: fileName = @"Assets/Hardware/TDAS_TOM_Front.jpg"; break; case HardwareTypes.SIM: fileName = @"Assets/Hardware/TDAS_SIM_Front.jpg"; break; case HardwareTypes.DIM: fileName = @"Assets/Hardware/TDAS_DIM_Front.jpg"; break; default: fileName = @"Assets/Hardware/TDAS_Rack_Cover.png"; break; } if (string.IsNullOrWhiteSpace(fileName)) { DASImage = null; return; } try { var image = new BitmapImage(new Uri(_baseUri, fileName)); image.Freeze(); DASImage = image; } catch (Exception ex) { APILogger.Log( $"Failed to get image: {fileName} for type: {ModuleType.ToString()} exception: {ex.Message.ToString()}"); } } public IAddEditHardwareHardware OwningHardware { get; set; } public string GetSerialNumberPrefix() { switch (ModuleType) { case HardwareTypes.DIM: return "DIM"; case HardwareTypes.SIM: return "SIM"; case HardwareTypes.SLICE_Bridge: { switch (SLICEBridgeType) { case SLICEBridgeTypes.ACC: return "AC"; case SLICEBridgeTypes.ARS: return "AR"; case SLICEBridgeTypes.Bridge: return "BR"; case SLICEBridgeTypes.IEPE: return "IEPE"; } } break; case HardwareTypes.TOM: return "TOM"; } return string.Empty; } public DASModule() { } } }