public void Serialize_Deserialize_ReceiptResponse_ShouldReturn_InitialClass()
        {
            var chargeItem = new ifPOS.v0.ReceiptResponse();

            chargeItem.ftStateData     = Guid.NewGuid().ToString();
            chargeItem.ftReceiptHeader = new string[]
            {
                Guid.NewGuid().ToString(),
                    Guid.NewGuid().ToString()
            };
            chargeItem.ftChargeItems = new ifPOS.v0.ChargeItem[]
            {
            };
            chargeItem.ftPayItems = new ifPOS.v0.PayItem[]
            {
            };
            chargeItem.ftPayLines = new string[]
            {
                Guid.NewGuid().ToString(),
                    Guid.NewGuid().ToString()
            };
            chargeItem.ftSignatures = new ifPOS.v0.SignaturItem[]
            {
            };
            chargeItem.ftReceiptFooter = new string[]
            {
                Guid.NewGuid().ToString(),
                    Guid.NewGuid().ToString()
            };

            var stream1    = new MemoryStream();
            var serializer = new DataContractSerializer(typeof(ifPOS.v0.ReceiptResponse));

            serializer.WriteObject(stream1, chargeItem);
            stream1.Position = 0;
            var xmlChargeItem = (ifPOS.v0.ReceiptResponse)serializer.ReadObject(stream1);

            xmlChargeItem.ftCashBoxID.Should().Be(chargeItem.ftCashBoxID);
            xmlChargeItem.ftQueueID.Should().Be(chargeItem.ftQueueID);
            xmlChargeItem.ftQueueItemID.Should().Be(chargeItem.ftQueueItemID);
            xmlChargeItem.ftQueueRow.Should().Be(chargeItem.ftQueueRow);
            xmlChargeItem.cbTerminalID.Should().Be(chargeItem.cbTerminalID);
            xmlChargeItem.cbReceiptReference.Should().Be(chargeItem.cbReceiptReference);
            xmlChargeItem.ftCashBoxIdentification.Should().Be(chargeItem.ftCashBoxIdentification);
            xmlChargeItem.ftReceiptIdentification.Should().Be(chargeItem.ftReceiptIdentification);
            xmlChargeItem.ftReceiptMoment.Should().Be(chargeItem.ftReceiptMoment);
            xmlChargeItem.ftReceiptHeader.Should().BeEquivalentTo(chargeItem.ftReceiptHeader);
            xmlChargeItem.ftChargeItems.Should().BeEquivalentTo(chargeItem.ftChargeItems);
            xmlChargeItem.ftPayItems.Should().BeEquivalentTo(chargeItem.ftPayItems);
            xmlChargeItem.ftPayLines.Should().BeEquivalentTo(chargeItem.ftPayLines);
            xmlChargeItem.ftSignatures.Should().BeEquivalentTo(chargeItem.ftSignatures);
            xmlChargeItem.ftReceiptFooter.Should().BeEquivalentTo(chargeItem.ftReceiptFooter);
            xmlChargeItem.ftState.Should().Be(chargeItem.ftState);
            xmlChargeItem.ftStateData.Should().Be(chargeItem.ftStateData);
        }
Пример #2
0
        public ifPOS.v0.ReceiptResponse Sign(ifPOS.v0.ReceiptRequest request)
        {
            var response = new ifPOS.v0.ReceiptResponse
            {
                ftCashBoxID        = request.ftCashBoxID,
                cbTerminalID       = request.cbTerminalID,
                cbReceiptReference = request.cbReceiptReference,
                ftQueueID          = request.ftQueueID,
                ftReceiptMoment    = DateTime.UtcNow
            };

            return(response);
        }
        public void SignAsync()
        {
            var client  = CreateClient();
            var request = new ifPOS.v0.ReceiptRequest();

            var ar = client.BeginSign(request, new AsyncCallback(result =>
            {
                var asyncState    = (ifPOS.v0.IPOS)result.AsyncState;
                SignAsyncResponse = asyncState.EndSign(result);
            }), client);

            while (SignAsyncResponse == null)
            {
                System.Threading.Thread.Sleep(0);
            }

            SignAsyncResponse.Should().NotBeNull();
        }
 public static void PrintResponse(ifPOS.v0.ReceiptResponse response)
 {
     if (response != null)
     {
         Console.WriteLine("{0:G} ReceiptResponse:", DateTime.Now);
         Console.WriteLine(JsonConvert.SerializeObject(response, Formatting.Indented));
         Console.WriteLine("========== n: {0} CashBoxIdentificateion:{1} ReceiptIdentification:{2} ==========", response.cbReceiptReference, response.ftCashBoxIdentification, response.ftReceiptIdentification);
         foreach (var item in response.ftSignatures.Where(x => x.ftSignatureFormat != 0x03))
         {
             Console.WriteLine("{0}:{1}", item.Caption, item.Data);
         }
         foreach (var item in response.ftSignatures.Where(x => x.ftSignatureFormat == 0x03))
         {
             QrCodeHelper.PrintQrCode(item.Data);
         }
     }
     else
     {
         Console.WriteLine("null-result!!!");
     }
 }
Пример #5
0
 public static ifPOS.v1.ReceiptResponse Into(this ifPOS.v0.ReceiptResponse from)
 {
     return(new ifPOS.v1.ReceiptResponse()
     {
         ftCashBoxID = from.ftCashBoxID,
         ftQueueID = from.ftQueueID,
         ftQueueItemID = from.ftQueueItemID,
         ftQueueRow = from.ftQueueRow,
         cbTerminalID = from.cbTerminalID,
         cbReceiptReference = from.cbReceiptReference,
         ftCashBoxIdentification = from.ftCashBoxIdentification,
         ftReceiptIdentification = from.ftReceiptIdentification,
         ftReceiptMoment = from.ftReceiptMoment,
         ftReceiptHeader = from.ftReceiptHeader,
         ftChargeItems = ConvertArray(from.ftChargeItems, i => i.Into()),
         ftChargeLines = from.ftChargeLines,
         ftPayItems = ConvertArray(from.ftPayItems, i => i.Into()),
         ftPayLines = from.ftPayLines,
         ftSignatures = ConvertArray(from.ftSignatures, i => i.Into()),
         ftReceiptFooter = from.ftReceiptFooter,
         ftState = from.ftState,
         ftStateData = from.ftStateData,
     });
 }