static AtrInvalidHistoricalBytesAdapter() { IPropertyAdapterFactory <AtrInvalidHistoricalBytesAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <AtrInvalidHistoricalBytesAdapter>(); AtrInvalidHistoricalBytesAdapter.parseErrorAdapter = PropertyFactory.Create( nameof(AtrInvalidHistoricalBytesAdapter.ParseError), instance => instance.historicalCharacters.ParseError.Error ); AtrInvalidHistoricalBytesAdapter.preErrorDataAdapter = PropertyFactory.Create( nameof(AtrInvalidHistoricalBytesAdapter.PreErrorData), instance => instance.historicalCharacters.Bytes.Take(instance.historicalCharacters.ParseError.Index).ToHexString(" ") ); AtrInvalidHistoricalBytesAdapter.errorDataAdapter = PropertyFactory.Create( nameof(AtrInvalidHistoricalBytesAdapter.ErrorData), instance => instance.historicalCharacters.Bytes.Skip(instance.historicalCharacters.ParseError.Index).Take(1).ToHexString(" ") ); AtrInvalidHistoricalBytesAdapter.postErrorDataAdapter = PropertyFactory.Create( nameof(AtrInvalidHistoricalBytesAdapter.PostErrorData), instance => instance.historicalCharacters.Bytes.Skip(instance.historicalCharacters.ParseError.Index + 1).ToHexString(" ") ); }
static AtrViewerModel() { EnumerationAdapter <ProtocolType> .Items = new[] { new EnumerationAdapter <ProtocolType>(ProtocolType.T0, "T=0", "T=0 (half duplex)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T1, "T=1", "T=1 (half duplex)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T2, "T=2", "T=2 (future full duplex)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T3, "T=3", "T=3 (future full duplex)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T4, "T=4", "T=4 (enhanced half duplex)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T5, "T=5", "T=5 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T6, "T=6", "T=6 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T7, "T=7", "T=7 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T8, "T=8", "T=8 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T9, "T=9", "T=9 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T10, "T=10", "T=10 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T11, "T=11", "T=11 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T12, "T=12", "T=12 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T13, "T=13", "T=13 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <ProtocolType>(ProtocolType.T14, "T=14", "T=14 (proprietary)"), new EnumerationAdapter <ProtocolType>(ProtocolType.RfuF, "0xF", "0xF (RFU, only used to indicate global extended interface bytes)") }; EnumerationAdapter <InterfaceByteGroupType> .Items = new[] { new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T0, "T=0", "T=0 (half duplex)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T1, "T=1", "T=1 (half duplex)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T2, "T=2", "T=2 (future full duplex)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T3, "T=3", "T=3 (future full duplex)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T4, "T=4", "T=4 (enhanced half duplex)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T5, "T=5", "T=5 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T6, "T=6", "T=6 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T7, "T=7", "T=7 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T8, "T=8", "T=8 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T9, "T=9", "T=9 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T10, "T=10", "T=10 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T11, "T=11", "T=11 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T12, "T=12", "T=12 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T13, "T=13", "T=13 (RFU ISO/IEC JTC 1/SC 17)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.T14, "T=14", "T=14 (proprietary)"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.Global, "global", "global"), new EnumerationAdapter <InterfaceByteGroupType>(InterfaceByteGroupType.GlobalExtended, "global extended (T=15)", "global extended (T=15)") }; EnumerationAdapter <ClockStopSupport> .Items = new[] { new EnumerationAdapter <ClockStopSupport>(ClockStopSupport.NotSupported, "Not supported", "Not supported"), new EnumerationAdapter <ClockStopSupport>(ClockStopSupport.NoPreference, "No preference", "No preference"), new EnumerationAdapter <ClockStopSupport>(ClockStopSupport.StateH, "State H", "High level state"), new EnumerationAdapter <ClockStopSupport>(ClockStopSupport.StateL, "State L", "Low level state") }; EnumerationAdapter <SpuUse> .Items = new[] { new EnumerationAdapter <SpuUse>(SpuUse.NotUsed, "Not used", "Not used"), new EnumerationAdapter <SpuUse>(SpuUse.Standard, "Standard", "Standard"), new EnumerationAdapter <SpuUse>(SpuUse.Proprietary, "Proprietary", "Proprietary") }; EnumerationAdapter <OperatingConditions> .Items = new[] { new EnumerationAdapter <OperatingConditions>(OperatingConditions.AOnly, "A only", "Class A only"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.BOnly, "B only", "Class B only"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.COnly, "C only", "Class C only"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.AandB, "A and B", "Class A and B"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.BandC, "B and C", "Class B and C"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.ABandC, "A, B and C", "Classes A, B and C"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu05, "0x05", "0x05 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu08, "0x08", "0x08 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu09, "0x09", "0x09 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_0A, "0x0A", "0x0A (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_0B, "0x0B", "0x0B (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_0C, "0x0C", "0x0C (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_0D, "0x0D", "0x0D (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_0E, "0x0E", "0x0E (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_0F, "0x0F", "0x0F (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu10, "0x10", "0x10 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu11, "0x11", "0x11 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu12, "0x12", "0x12 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu13, "0x13", "0x13 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu14, "0x14", "0x14 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu15, "0x15", "0x15 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu16, "0x16", "0x16 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu17, "0x17", "0x17 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu18, "0x18", "0x18 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu19, "0x19", "0x19 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_1A, "0x1A", "0x1A (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_1B, "0x1B", "0x1B (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_1C, "0x1C", "0x1C (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_1D, "0x1D", "0x1D (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_1E, "0x1E", "0x1E (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_1F, "0x1F", "0x1F (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu20, "0x20", "0x20 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu21, "0x21", "0x21 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu22, "0x22", "0x22 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu23, "0x23", "0x23 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu24, "0x24", "0x24 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu25, "0x25", "0x25 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu26, "0x26", "0x26 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu27, "0x27", "0x27 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu28, "0x28", "0x28 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu29, "0x29", "0x29 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_2A, "0x2A", "0x2A (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_2B, "0x2B", "0x2B (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_2C, "0x2C", "0x2C (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_2D, "0x2D", "0x2D (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_2E, "0x2E", "0x2E (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_2F, "0x2F", "0x2F (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu30, "0x30", "0x30 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu31, "0x31", "0x31 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu32, "0x32", "0x32 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu33, "0x33", "0x33 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu34, "0x34", "0x34 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu35, "0x35", "0x35 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu36, "0x36", "0x36 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu37, "0x37", "0x0x37 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu38, "0x38", "0x38 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu39, "0x39", "0x39 (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_3A, "0x3A", "0x3A (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_3B, "0x3B", "0x3B (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_3C, "0x3C", "0x3C (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_3D, "0x3D", "0x3D (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_3E, "0x3E", "0x3E (RFU)"), new EnumerationAdapter <OperatingConditions>(OperatingConditions.Rfu_3F, "0x3F", "0x3F (RFU)") }; EnumerationAdapter <VppProgrammingCurrent> .Items = new[] { new EnumerationAdapter <VppProgrammingCurrent>(VppProgrammingCurrent.Current25, "25", "25 mA"), new EnumerationAdapter <VppProgrammingCurrent>(VppProgrammingCurrent.Current50, "50", "50 mA"), new EnumerationAdapter <VppProgrammingCurrent>(VppProgrammingCurrent.Rfu10, "10b", "10b (RFU, was 100 mA)"), new EnumerationAdapter <VppProgrammingCurrent>(VppProgrammingCurrent.Rfu11, "11b", "11b (RFU)") }; EnumerationAdapter <RedundancyCodeType> .Items = new[] { new EnumerationAdapter <RedundancyCodeType>(RedundancyCodeType.Crc, "CRC", "CRC (Cyclic Redundancy Check)"), new EnumerationAdapter <RedundancyCodeType>(RedundancyCodeType.Lrc, "LRC", "LRC (Longitudinal Redundancy Check)"), }; EnumerationAdapter <FiFmax> .Items = new[] { new EnumerationAdapter <FiFmax>(FiFmax.Fi372FMax4, "0", "0 (F=372, 4 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi372FMax5, "1", "1 (F=372, 5 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi558FMax6, "2", "2 (F=558, 6 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi744FMax8, "3", "3 (F=744, 8 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi1116FMax12, "4", "4 (F=1116, 12 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi1488FMax16, "5", "5 (F=1488, 16 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi1860FMax20, "6", "6 (F=1860, 20 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Rfu7, "7", "7 (RFU)"), new EnumerationAdapter <FiFmax>(FiFmax.Rfu8, "8", "8 (RFU)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi512FMax5, "9", "9 (F=512, 5 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi768FMax7P5, "A", "A (F=768, 7.5 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi1024FMax10, "B", "B (F=1024, 10 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi1536FMax15, "C", "C (F=1536, 15 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.Fi2048FMax20, "D", "D (F=2048, 20 MHz)"), new EnumerationAdapter <FiFmax>(FiFmax.RfuE, "E", "E (RFU)"), new EnumerationAdapter <FiFmax>(FiFmax.RfuF, "F", "F (RFU)") }; EnumerationAdapter <Di> .Items = new[] { new EnumerationAdapter <Di>(Di.Rfu0, "0", "0 (= RFU)"), new EnumerationAdapter <Di>(Di.Di1, "1", "1 (D=1)"), new EnumerationAdapter <Di>(Di.Di2, "2", "2 (D=2)"), new EnumerationAdapter <Di>(Di.Di4, "3", "3 (D=4)"), new EnumerationAdapter <Di>(Di.Di8, "4", "4 (D=8)"), new EnumerationAdapter <Di>(Di.Di16, "5", "5 (D=16)"), new EnumerationAdapter <Di>(Di.Di32, "6", "6 (D=32)"), new EnumerationAdapter <Di>(Di.Di64, "7", "7 (D=64)"), new EnumerationAdapter <Di>(Di.Di12, "8", "8 (D=12)"), new EnumerationAdapter <Di>(Di.Di20, "9", "9 (D=20)"), new EnumerationAdapter <Di>(Di.RfuA, "A", "A (RFU)"), new EnumerationAdapter <Di>(Di.RfuB, "B", "B (RFU)"), new EnumerationAdapter <Di>(Di.RfuC, "C", "C (RFU)"), new EnumerationAdapter <Di>(Di.RfuD, "D", "D (RFU)"), new EnumerationAdapter <Di>(Di.RfuE, "E", "E (RFU)"), new EnumerationAdapter <Di>(Di.RfuF, "F", "F (RFU)") }; EnumerationAdapter <EtsiSpuSecureChannelSupport> .Items = new[] { new EnumerationAdapter <EtsiSpuSecureChannelSupport>(EtsiSpuSecureChannelSupport.NotIndicated, "Not indicated", "Support not indicated"), new EnumerationAdapter <EtsiSpuSecureChannelSupport>(EtsiSpuSecureChannelSupport.SecureChannelSupported, "Secure Channel", "Secure Channel supported as defined in TS 102 484"), new EnumerationAdapter <EtsiSpuSecureChannelSupport>(EtsiSpuSecureChannelSupport.SecuredApduRequired, "Secured APDU", "Secured APDU - Platform to Platform required as defined in TS 102 484"), new EnumerationAdapter <EtsiSpuSecureChannelSupport>(EtsiSpuSecureChannelSupport.Rfu01, "01b (RFU)", "01b (RFU)"), }; EnumerationAdapter <HistoricalCharacterTypes> .Items = new[] { new EnumerationAdapter <HistoricalCharacterTypes>(HistoricalCharacterTypes.CompactTlv, "Compact TLV", "Compact TLV (00/80)"), new EnumerationAdapter <HistoricalCharacterTypes>(HistoricalCharacterTypes.DirDataReference, "Dir Data Reference", "Dir Data Reference (10)"), new EnumerationAdapter <HistoricalCharacterTypes>(HistoricalCharacterTypes.Proprietary, "Proprietary", "Proprietary (01-0A/11-7F/90-FF)"), new EnumerationAdapter <HistoricalCharacterTypes>(HistoricalCharacterTypes.Rfu, "RFU", "RFU (81-8F)"), new EnumerationAdapter <HistoricalCharacterTypes>(HistoricalCharacterTypes.No, "No", "No historical characters"), }; IPropertyAdapterFactory <AtrViewerModel> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <AtrViewerModel>(); AtrViewerModel.tokenizedAtrAdapter = PropertyFactory.Create( nameof(AtrViewerModel.TokenizedAtr), instance => new TokenizedAtrAdapter(instance.Atr.TokenizedAtr) ); AtrViewerModel.interpretedAtrAdapter = PropertyFactory.Create( nameof(AtrViewerModel.InterpretedAtr), instance => new InterpretedAtrAdapter(instance.Atr) ); }
static DataObjectCardServiceDataAdapter() { ObservableObject.IPropertyAdapterFactory <DataObjectCardServiceDataAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <DataObjectCardServiceDataAdapter>(); DataObjectCardServiceDataAdapter.dataObjectsAvailableInAtrFileAdapter = PropertyFactory.Create( nameof(DataObjectCardServiceDataAdapter.DataObjectsAvailableInAtrFile), instance => instance.value.DataObjectsAvailableInAtrFile, (instance, value) => instance.value.DataObjectsAvailableInAtrFile = value ); DataObjectCardServiceDataAdapter.dataObjectsAvailableInDirFileAdapter = PropertyFactory.Create( nameof(DataObjectCardServiceDataAdapter.DataObjectsAvailableInDirFile), instance => instance.value.DataObjectsAvailableInDirFile, (instance, value) => instance.value.DataObjectsAvailableInDirFile = value ); DataObjectCardServiceDataAdapter.supportsApplicationSelectionByFullDfNameAdapter = PropertyFactory.Create( nameof(DataObjectCardServiceDataAdapter.SupportsApplicationSelectionByFullDfName), instance => instance.value.SupportsApplicationSelectionByFullDfName, (instance, value) => instance.value.SupportsApplicationSelectionByFullDfName = value ); DataObjectCardServiceDataAdapter.supportsApplicationSelectionByPartialDfNameAdapter = PropertyFactory.Create( nameof(DataObjectCardServiceDataAdapter.SupportsApplicationSelectionByPartialDfName), instance => instance.value.SupportsApplicationSelectionByPartialDfName, (instance, value) => instance.value.SupportsApplicationSelectionByPartialDfName = value ); DataObjectCardServiceDataAdapter.fileIoServicesMethodAdapter = PropertyFactory.Create( nameof(DataObjectCardServiceDataAdapter.FileIoServicesMethod), instance => EnumerationAdapter <FileIoServices> .GetInstanceFor(instance.value.FileIoServicesMethod), (instance, value) => instance.value.FileIoServicesMethod = value ); }
static AtrDirDataReferenceHistoricalBytesAdapter() { ObservableObject.IPropertyAdapterFactory <AtrDirDataReferenceHistoricalBytesAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <AtrDirDataReferenceHistoricalBytesAdapter>(); AtrDirDataReferenceHistoricalBytesAdapter.dirDataReferenceAdapter = PropertyFactory.Create( nameof(AtrDirDataReferenceHistoricalBytesAdapter.DirDataReference), instance => instance.historicalCharacters.DirDataReference.ToHexString(), (instance, value) => Helper.SetAsHexByteValue(value, _ => instance.historicalCharacters.DirDataReference = _) ); }
static ModelEnumerationItemNodeAdapter() { ObservableObject.IPropertyAdapterFactory <ModelEnumerationItemNodeAdapter> Factory = ObservableObject.GetPropertyAdapterFactory <ModelEnumerationItemNodeAdapter>(); ModelEnumerationItemNodeAdapter.internalValueAdapter = Factory.Create( nameof(ModelEnumerationItemNodeAdapter.InternalValue), instance => ModelNodeBaseAdapter.GetAdapter(instance, instance.enumerationItem.Value) ); ModelEnumerationItemNodeAdapter.modelAdapter = Factory.Create( nameof(ModelEnumerationItemNodeAdapter.Model), instance => instance.InternalValue.Model ); ModelEnumerationItemNodeAdapter.nameAdapter = Factory.Create( nameof(ModelEnumerationItemNodeAdapter.Name), instance => instance.enumerationItem.Name ); ModelEnumerationItemNodeAdapter.typenameAdapter = Factory.Create( nameof(ModelEnumerationItemNodeAdapter.Typename), instance => instance.InternalValue.Typename ); ModelEnumerationItemNodeAdapter.valueAdapter = Factory.Create( nameof(ModelEnumerationItemNodeAdapter.Value), instance => instance.InternalValue.Value ); ModelEnumerationItemNodeAdapter.hasValueAdapter = Factory.Create( nameof(ModelEnumerationItemNodeAdapter.HasValue), instance => instance.InternalValue.HasValue ); ModelEnumerationItemNodeAdapter.childrenAdapter = Factory.Create( nameof(ModelEnumerationItemNodeAdapter.Children), instance => instance.InternalValue.Children ); }
static DataObjectStatusIndicatorAdapter() { ObservableObject.IPropertyAdapterFactory <DataObjectStatusIndicatorAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <DataObjectStatusIndicatorAdapter>(); DataObjectStatusIndicatorAdapter.includedInTlvAdapter = PropertyFactory.Create( nameof(DataObjectStatusIndicatorAdapter.IncludedInTlv), instance => instance.value.IncludedInTlv ); DataObjectStatusIndicatorAdapter.lifeCycleAdapter = PropertyFactory.Create( nameof(DataObjectStatusIndicatorAdapter.LifeCycle), instance => instance.value.LifeCycle != null ? instance.value.LifeCycle.Value.ToString("X2") : null, (instance, value) => Helper.SetAsHexByteValue(value, _ => instance.value.LifeCycle = _) ); DataObjectStatusIndicatorAdapter.isLifeCycleDefinedAdapter = PropertyFactory.Create( nameof(DataObjectStatusIndicatorAdapter.IsLifeCycleDefined), instance => instance.value.LifeCycle != null ); DataObjectStatusIndicatorAdapter.canUndefineLifeCycleAdapter = PropertyFactory.Create( nameof(DataObjectStatusIndicatorAdapter.CanUndefineLifeCycle), instance => instance.value.CanUndefineLifeCycle ); DataObjectStatusIndicatorAdapter.lifeCycleInformationAdapter = PropertyFactory.Create( nameof(DataObjectStatusIndicatorAdapter.LifeCycleInformation), instance => EnumerationAdapter <KnownLifeCycle> .GetInstanceFor(instance.value.LifeCycleInformation), (instance, value) => instance.value.LifeCycleInformation = value ); DataObjectStatusIndicatorAdapter.statusWordIndicationAdapter = PropertyFactory.Create( nameof(DataObjectStatusIndicatorAdapter.StatusWordIndication), instance => EnumerationAdapter <StatusWordIndication> .GetInstanceFor(instance.value.StatusWordIndication), (instance, value) => instance.value.StatusWordIndication = value ); DataObjectStatusIndicatorAdapter.statusWordAdapter = PropertyFactory.Create( nameof(DataObjectStatusIndicatorAdapter.StatusWord), instance => instance.value.StatusWord != null ? instance.value.StatusWord.Value.ToString("X4") : null, (instance, value) => Helper.SetAsHexUShortValue(value, _ => instance.value.StatusWord = _) ); DataObjectStatusIndicatorAdapter.statusWordCodingAdapter = PropertyFactory.Create( nameof(DataObjectStatusIndicatorAdapter.StatusWordCoding), instance => EnumerationAdapter <StatusWordCoding> .GetInstanceFor(instance.value.IncludedInTlv?Classes.ATR.StatusWordCoding.WithinTlvData : Classes.ATR.StatusWordCoding.FollowingTlvData) ); DataObjectStatusIndicatorAdapter.isStatusWordDefinedAdapter = PropertyFactory.Create( nameof(DataObjectStatusIndicatorAdapter.IsStatusWordDefined), instance => instance.value.StatusWordIndication != null ); DataObjectStatusIndicatorAdapter.canUndefineStatusWordAdapter = PropertyFactory.Create( nameof(DataObjectStatusIndicatorAdapter.CanUndefineStatusWord), instance => instance.value.CanUndefineStatusWordIndication ); }
static DataObjectApplicationIdentifierAdapter() { ObservableObject.IPropertyAdapterFactory <DataObjectApplicationIdentifierAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <DataObjectApplicationIdentifierAdapter>(); DataObjectApplicationIdentifierAdapter.aidAdapter = PropertyFactory.Create( nameof(DataObjectApplicationIdentifierAdapter.Aid), instance => instance.value.Aid.ToHexString() ); DataObjectApplicationIdentifierAdapter.ridAdapter = PropertyFactory.Create( nameof(DataObjectApplicationIdentifierAdapter.Rid), instance => DataObjectApplicationIdentifierAdapter.GetRidInfo(instance.value.Aid) ); }
static DataObjectPreIssuingDataAdapter() { ObservableObject.IPropertyAdapterFactory <DataObjectPreIssuingDataAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <DataObjectPreIssuingDataAdapter>(); DataObjectPreIssuingDataAdapter.preIssuingDataAdapter = PropertyFactory.Create( nameof(DataObjectPreIssuingDataAdapter.PreIssuingData), instance => instance.value.PreIssuingData.ToHexString(" ") ); }
static AtrInterfaceByteGroupTokenAdapter() { ObservableObject.IPropertyAdapterFactory <AtrInterfaceByteGroupTokenAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <AtrInterfaceByteGroupTokenAdapter>(); AtrInterfaceByteGroupTokenAdapter.groupNumberAdatper = PropertyFactory.Create( nameof(AtrInterfaceByteGroupTokenAdapter.GroupNumber), instance => instance.atrInterfaceByteGroupToken.Number ); AtrInterfaceByteGroupTokenAdapter.typeAdatper = PropertyFactory.Create( nameof(AtrInterfaceByteGroupTokenAdapter.Type), instance => EnumerationAdapter <InterfaceByteGroupType> .GetInstanceFor(instance.atrInterfaceByteGroupToken.Type) ); AtrInterfaceByteGroupTokenAdapter.taAdapter = PropertyFactory.Create( nameof(AtrInterfaceByteGroupTokenAdapter.Ta), instance => instance.atrInterfaceByteGroupToken.Ta.HasValue ? instance.atrInterfaceByteGroupToken.Ta.Value.ToHexString() : null, (instance, value) => instance.atrInterfaceByteGroupToken.Ta = !string.IsNullOrEmpty(value)?byte.Parse(value.Substring(0, Math.Min(value.Length, 2)), NumberStyles.HexNumber):(byte?)null ); AtrInterfaceByteGroupTokenAdapter.tbAdapter = PropertyFactory.Create( nameof(AtrInterfaceByteGroupTokenAdapter.Tb), instance => instance.atrInterfaceByteGroupToken.Tb.HasValue ? instance.atrInterfaceByteGroupToken.Tb.Value.ToHexString() : null, (instance, value) => instance.atrInterfaceByteGroupToken.Tb = !string.IsNullOrEmpty(value) ? byte.Parse(value.Substring(0, Math.Min(value.Length, 2)), NumberStyles.HexNumber) : (byte?)null ); AtrInterfaceByteGroupTokenAdapter.tcAdapter = PropertyFactory.Create( nameof(AtrInterfaceByteGroupTokenAdapter.Tc), instance => instance.atrInterfaceByteGroupToken.Tc.HasValue ? instance.atrInterfaceByteGroupToken.Tc.Value.ToHexString() : null, (instance, value) => instance.atrInterfaceByteGroupToken.Tc = !string.IsNullOrEmpty(value) ? byte.Parse(value.Substring(0, Math.Min(value.Length, 2)), NumberStyles.HexNumber) : (byte?)null ); AtrInterfaceByteGroupTokenAdapter.nextGroupTypeAdapter = PropertyFactory.Create( nameof(AtrInterfaceByteGroupTokenAdapter.NextGroupType), instance => EnumerationAdapter <InterfaceByteGroupType> .GetInstanceFor(instance.atrInterfaceByteGroupToken.NextInterfaceBytesIndicator != null?instance.atrInterfaceByteGroupToken.NextInterfaceBytesIndicator.GroupType:(InterfaceByteGroupType?)null) ); AtrInterfaceByteGroupTokenAdapter.nextBytesTypeAdapter = PropertyFactory.Create( nameof(AtrInterfaceByteGroupTokenAdapter.NextBytes), instance => instance.atrInterfaceByteGroupToken.NextInterfaceBytesIndicator != null?AtrTokenAdapterBase.ToString(instance.atrInterfaceByteGroupToken.NextInterfaceBytesIndicator.TaExists, instance.atrInterfaceByteGroupToken.NextInterfaceBytesIndicator.TbExists, instance.atrInterfaceByteGroupToken.NextInterfaceBytesIndicator.TcExists, instance.atrInterfaceByteGroupToken.NextInterfaceBytesIndicator.TdExists):"not set" ); AtrInterfaceByteGroupTokenAdapter.possibleTypesToChangeToAdapter = PropertyFactory.Create( nameof(AtrInterfaceByteGroupTokenAdapter.PossibleTypesToChangeTo), instance => ((InterfaceByteGroupType[])Enum.GetValues(typeof(InterfaceByteGroupType))) .Where(_ => _ != InterfaceByteGroupType.Global) //gloabl cannot be set; the first group automatically is global .Where(_ => instance.atrInterfaceByteGroupToken.NextGroup != null) //nothing cannot be set if no next group .Where(_ => _ != instance.atrInterfaceByteGroupToken.NextInterfaceBytesIndicator.GroupType) //we can skip what is already set .OrderBy(_ => (int)_) //Sort by id .SkipWhile(value => value < instance.atrInterfaceByteGroupToken.Type) //Next Group cannot be less than this group. Same is OK .TakeWhile(value => instance.atrInterfaceByteGroupToken.NextGroup.NextInterfaceBytesIndicator == null || value <= instance.atrInterfaceByteGroupToken.NextGroup.NextInterfaceBytesIndicator.GroupType), //next group cannot be higher than next to next group. Same is OK (instance, item) => EnumerationAdapter <InterfaceByteGroupType> .GetInstanceFor(item) ); AtrInterfaceByteGroupTokenAdapter.possibleTypesToAddNextGroupAdapter = PropertyFactory.Create( nameof(AtrInterfaceByteGroupTokenAdapter.PossibleTypesToAddNextGroup), instance => ((InterfaceByteGroupType[])Enum.GetValues(typeof(InterfaceByteGroupType))) .Where(_ => _ != InterfaceByteGroupType.Global) //gloabl cannot be set; the first group automatically is global .OrderBy(_ => (int)_) //Sort by id .SkipWhile(value => value < instance.atrInterfaceByteGroupToken.Type) //Next Group cannot be less than this group. Same is OK .TakeWhile(value => instance.atrInterfaceByteGroupToken.NextInterfaceBytesIndicator == null || value <= instance.atrInterfaceByteGroupToken.NextInterfaceBytesIndicator.GroupType), //next group cannot be higher than next to next group. Same is OK (instance, item) => EnumerationAdapter <InterfaceByteGroupType> .GetInstanceFor(item) ); }
static AtrPreambleTokenAdapter() { ObservableObject.IPropertyAdapterFactory <AtrPreambleTokenAdapter> PropertyFactory = ObservableObject.GetPropertyAdapterFactory <AtrPreambleTokenAdapter>(); AtrPreambleTokenAdapter.codingConventionAdapter = PropertyFactory.Create( nameof(AtrPreambleTokenAdapter.CodingConvention), instance => AtrPreambleTokenAdapter.ToString(instance.preamble.CodingConvention) ); AtrPreambleTokenAdapter.numberOfHistoricalCharactersAdapter = PropertyFactory.Create( nameof(AtrPreambleTokenAdapter.NumberOfHistoricalCharacters), instance => instance.preamble.NumberOfHistoricalCharacters ); AtrPreambleTokenAdapter.nextBytesTypeAdapter = PropertyFactory.Create( nameof(AtrPreambleTokenAdapter.NextBytes), instance => instance.preamble.NextInterfaceBytesIndicator != null ? AtrTokenAdapterBase.ToString(instance.preamble.NextInterfaceBytesIndicator.TaExists, instance.preamble.NextInterfaceBytesIndicator.TbExists, instance.preamble.NextInterfaceBytesIndicator.TcExists, instance.preamble.NextInterfaceBytesIndicator.TdExists) : "not set" ); }
static ModelComplexNodeAdapter() { ObservableObject.IPropertyAdapterFactory <ModelComplexNodeAdapter> Factory = ObservableObject.GetPropertyAdapterFactory <ModelComplexNodeAdapter>(); ModelComplexNodeAdapter.typenameAdapter = Factory.Create( nameof(ModelComplexNodeAdapter.Typename), instance => instance.model.Type.Name ); ModelComplexNodeAdapter.childrenAdapter = Factory.Create( nameof(ModelComplexNodeAdapter.Children), instance => instance.model.Properties, (instance, value) => ModelNodeBaseAdapter.GetAdapter(instance, value) ); }