示例#1
0
        public static ReceiptsApiData GenerateAdditionalDataReceipts(CompletionReceiptType receipts,
                                                                     IReceiptIntegration receiptIntegration)
        {
            var textReceipt      = string.Empty;
            var isAdditionalData = false;

            if (receipts != null)
            {
                var mimeType = IdentifyReceiptMimeType(receipts.ReceiptMimeType);

                // Dont process Images or PDF's
                if (mimeType == MimeTypeEnum.ImageJPEG || mimeType == MimeTypeEnum.Pdf)
                {
                    return(null);
                }

                var receiptSegments = GetReceiptSegments(receipts.AgentReceiptMimeData,
                                                         receipts.ConsumerReceipt1MimeData, receipts.ConsumerReceipt2MimeData);
                var receipt = ProcessReceipt(receiptSegments, receipts.ReceiptMimeType, receiptIntegration);

                if (mimeType == MimeTypeEnum.Thermal)
                {
                    textReceipt = ProcessThermalReceipt(receipt, receipts.CharsetEncoding);
                }
                else if (mimeType == MimeTypeEnum.Text)
                {
                    textReceipt = ProcessTextReceipt(receipt, receipts.CharsetEncoding);
                }
                isAdditionalData = !string.IsNullOrWhiteSpace(textReceipt);
            }
            return(isAdditionalData
                ? new ReceiptsApiData
            {
                TextReceipt = textReceipt
            }
                : null);
        }
        private static ReceiptsApiData GenerateAdditionalDataCompletionTest(string mimeType)
        {
            var byteList = new List <byte>
            {
                Convert.ToByte(22)
            };
            var segmentList = new List <ReceiptSegmentType> {
                new ReceiptSegmentType {
                    MimeData = byteList, Sequence = -1
                }
            };

            var preCompletionReceiptType = new CompletionReceiptType
            {
                ReceiptMimeType          = mimeType,
                ConsumerReceipt1MimeData = segmentList,
                ConsumerReceipt2MimeData = segmentList
            };
            var mockReceiptIntegration = new Mock <IReceiptIntegration>();

            mockReceiptIntegration.Setup(x => x.MergePdf(It.IsAny <List <byte[]> >())).Returns(() => new byte[1]);

            return(ReceiptHelper.GenerateAdditionalDataReceipts(preCompletionReceiptType, mockReceiptIntegration.Object));
        }