Пример #1
0
        private static string GetEventAsPrintableText(DeviceMonitorEvent ev)
        {
            string message = $"Event type {ev.GetType().Name}, (readers: {string.Join(", ", ev.Readers)})";

            Console.WriteLine("Event select");
            switch (ev)
            {
            case ReadersDetached detached:
                message += "detached";
                subscription?.Dispose();
                break;

            case ReadersAttached attached:
                message     += "attached";
                subscription = monitorFactory
                               .CreateObservable(SCardScope.System, SmartCardReaderName)
                               .Select(GetEventText)
                               .Do(Console.WriteLine)
                               .Subscribe(
                    onNext: _ => { },
                    onError: OnError);
                break;

            case DeviceMonitorInitialized initialized:
                message            += "initialized";
                SmartCardReaderName = ev.Readers.Where(n => !n.Contains("SAM")).First();
                message            += $"             {SmartCardReaderName}";
                subscription        = monitorFactory
                                      .CreateObservable(SCardScope.System, SmartCardReaderName)
                                      .Select(GetEventText)
                                      .Do(Console.WriteLine)
                                      .Subscribe(
                    onNext: _ => { },
                    onError: OnError);

                break;
            }
            return(message);
        }
Пример #2
0
 private static void OnNext(DeviceMonitorEvent ev)
 {
     Console.WriteLine($"Event type {ev.GetType()}, (readers: {string.Join(", ", ev.Readers)})");
 }
Пример #3
0
 private static string GetEventAsPrintableText(DeviceMonitorEvent ev)
 {
     return($"Event type {ev.GetType().Name}, (readers: {string.Join(", ", ev.Readers)})");
 }