Ejemplo n.º 1
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value == null)
            {
                return(null);
            }

            var log = (SuicaLogData)value;

            return(Suica.IsProcessOfSales(log.Process) ? log.DateTime : (DateTime?)null);
        }
Ejemplo n.º 2
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            var processType = (int)Suica.ConvertProcessType((byte)value);

            foreach (var color in Colors)
            {
                if (color.ProcessType == processType)
                {
                    return(color.Color);
                }
            }

            return(DefaultColor);
        }
        private void OnDetected(IFeliCaReader reader)
        {
            Idm.Value    = string.Empty;
            Access.Value = null;
            Logs.Clear();

            var idm = reader.ExecutePolling(0x0003);

            if (idm.Length == 0)
            {
                return;
            }

            var block = new ReadBlock {
                BlockNo = 0
            };

            if (!reader.ExecuteReadWoe(idm, 0x008B, block))
            {
                return;
            }

            var blocks1 = Enumerable.Range(0, 8).Select(x => new ReadBlock {
                BlockNo = (byte)x
            }).ToArray();
            var blocks2 = Enumerable.Range(8, 8).Select(x => new ReadBlock {
                BlockNo = (byte)x
            }).ToArray();
            var blocks3 = Enumerable.Range(16, 4).Select(x => new ReadBlock {
                BlockNo = (byte)x
            }).ToArray();

            if (!reader.ExecuteReadWoe(idm, 0x090F, blocks1) ||
                !reader.ExecuteReadWoe(idm, 0x090F, blocks2) ||
                !reader.ExecuteReadWoe(idm, 0x090F, blocks3))
            {
                return;
            }

            Idm.Value    = HexEncoder.ToHex(idm);
            Access.Value = Suica.ConvertToAccessData(block.BlockData);
            Logs.AddRange(blocks1.Concat(blocks2).Concat(blocks3)
                          .Select(x => Suica.ConvertToLogData(x.BlockData))
                          .Where(x => x != null)
                          .ToArray());
        }
 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 {
     return(Suica.ConvertProcessString((byte)value));
 }