Exemplo n.º 1
0
        public void UnserialiseStringToObject()
        {
            var ReadCardJSON = @"{""payload"":{""track1"":{""status"":""ok"",""data"":""123456789""},""track2"":{""status"":""dataMissing"",""data"":""123456789""},""track3"":{""status"":""dataInvalid"",""data"":""123456789""},""completionCode"":""success"",""errorDescription"":""OK""},""headers"":{""name"":""CardReader.ReadRawData"",""requestId"":""ee6d592b-483c-4c22-98ef-1070e290bf4f"",""type"":""completion""}}";

            var assemblyName = Assembly.GetAssembly(typeof(ReadRawDataCompletion))?.GetName();

            IsNotNull(assemblyName);

            var decoder = new MessageDecoder(MessageDecoder.AutoPopulateType.Response, assemblyName)
            {
                { typeof(ReadRawDataCompletion) }
            };

            bool rc = decoder.TryUnserialise(ReadCardJSON, out object resultMessage);

            IsTrue(rc);
            IsNotNull(resultMessage);

            Completion <ReadRawDataCompletion.PayloadData> result = resultMessage as Completion <ReadRawDataCompletion.PayloadData> ?? throw new Exception();

            IsNotNull(result);

            IsInstanceOfType(result, typeof(ReadRawDataCompletion));
            ReadRawDataCompletion readCardCompletion = result as ReadRawDataCompletion;

            IsNotNull(readCardCompletion);
            IsNotNull(readCardCompletion.Payload);
            ReadRawDataCompletion.PayloadData readCardPayload = readCardCompletion.Payload as ReadRawDataCompletion.PayloadData;
            IsNotNull(readCardPayload);
            IsNotNull(readCardPayload.Track1);
            IsNotNull(readCardPayload.Track2);
            IsNotNull(readCardPayload.Track3);
        }
Exemplo n.º 2
0
        private static async Task DoAcceptCard()
        {
            // Create the connection object. This doesn't start anything...
            var cardReader = new XFS4IoTClient.ClientConnection(
                EndPoint: CardReaderUri ?? throw new NullReferenceException()
                );

            // Open the actual network connection
            cardReader.ConnectAsync().Wait(1000);

            Logger.WriteLine($"Sending {nameof(ReadRawDataCommand)} command");

            //MessageBox((IntPtr)0, "Send CardReader ReadRawData command to read chip card", "XFS4IoT Test Client", 0);
            // Create a new command and send it to the device
            var command = new ReadRawDataCommand(Guid.NewGuid().ToString(), new ReadRawDataCommand.PayloadData(60000, true, true, true, true, true, true, true, true, true, true, true, true, true, true));
            await cardReader.SendCommandAsync(command);

            // Wait for a response from the device.
            Logger.WriteLine("Waiting for response... ");

            for (; ;)
            {
                object cmdResponse = await cardReader.ReceiveMessageAsync();

                if (cmdResponse is null)
                {
                    Logger.WriteLine($"Invalid response. {nameof(ReadRawDataCompletion)}");
                    break;
                }

                if (cmdResponse.GetType() != typeof(ReadRawDataCompletion))
                {
                    if (cmdResponse.GetType() == typeof(XFS4IoT.CardReader.Events.MediaInsertedEvent))
                    {
                        Logger.WriteLine($"Execute event received. {nameof(XFS4IoT.CardReader.Events.MediaInsertedEvent)}");
                        continue;
                    }
                    else
                    {
                        Logger.WriteLine($"Unexpected type of response. {nameof(ReadRawDataCompletion)}");
                    }
                }

                ReadRawDataCompletion response = cmdResponse as ReadRawDataCompletion;
                if (response is null)
                {
                    Logger.WriteLine($"Invalid type of response. {nameof(ReadRawDataCompletion)}");
                }
                else
                {
                    Logger.WriteLine($"Response received. {nameof(ReadRawDataCompletion)}");
                }

                break;
            }
        }
Exemplo n.º 3
0
        public void SerialiseString()
        {
            var payload = new ReadRawDataCompletion.PayloadData(MessagePayload.CompletionCodeEnum.Success, "OK", null,
                                                                new Track1Class(Track1Class.StatusEnum.Ok, "123456789"),
                                                                new Track2Class(Track2Class.StatusEnum.DataMissing, "123456789"),
                                                                new Track3Class(Track3Class.StatusEnum.DataInvalid, "123456789"));
            var response = new ReadRawDataCompletion("ee6d592b-483c-4c22-98ef-1070e290bf4f", payload);

            string res = response.Serialise();

            AreEqual(@"{""payload"":{""track1"":{""status"":""ok"",""data"":""123456789""},""track2"":{""status"":""dataMissing"",""data"":""123456789""},""track3"":{""status"":""dataInvalid"",""data"":""123456789""},""completionCode"":""success"",""errorDescription"":""OK""},""headers"":{""name"":""CardReader.ReadRawData"",""requestId"":""ee6d592b-483c-4c22-98ef-1070e290bf4f"",""type"":""completion""}}", res);
        }
Exemplo n.º 4
0
        public void Constructor()
        {
            var payload = new ReadRawDataCompletion.PayloadData(MessagePayload.CompletionCodeEnum.Success, "OK", null,
                                                                new Track1Class(Track1Class.StatusEnum.Ok, "123456789"),
                                                                new Track2Class(Track2Class.StatusEnum.DataMissing, "123456789"),
                                                                new Track3Class(Track3Class.StatusEnum.DataInvalid, "123456789"));
            var response = new ReadRawDataCompletion(Guid.NewGuid().ToString(), payload);

            IsNotNull(response.Payload.Track1);
            IsNotNull(response.Payload.Track2);
            IsNotNull(response.Payload.Track3);
            AreEqual("123456789", response.Payload.Track1.Data);
            AreEqual(Track3Class.StatusEnum.DataInvalid, response.Payload.Track3.Status);
        }