예제 #1
0
        public async Task Test1()
        {
            CashlogSettings settings = new CashlogSettings
            {
                DataBaseConnectionString = "",
                DataProviderType         = DataProviderType.MySql,
                FnsPhone    = "",
                FnsPassword = ""
            };

            int         i          = 0;
            IFnsService fnsService = new FnsService(Mock.Of <ILogger>());
            IList <FnsReceiptDetailInfo> receiptDetailInfos = new List <FnsReceiptDetailInfo>();

            ReceiptDto[] allReceipts;
            using (var uow = new UnitOfWork(new ApplicationContext(settings.DataBaseConnectionString, settings.DataProviderType)))
                allReceipts = await uow.Receipts.GetAllAsync();

            var checkingReceipts = allReceipts
                                   .Where(x => !string.IsNullOrEmpty(x.FiscalDocument))
                                   .OrderByDescending(x => x.Id)
                                   .Take(12);

            foreach (var receipt in checkingReceipts)
            {
                var receiptMainInfo = receipt.ToCore().ToReceiptMainInfo();
                if (receiptMainInfo.IsValid())
                {
                    try
                    {
                        FnsReceiptDetailInfo data = await fnsService.GetReceiptAsync(receiptMainInfo, settings.FnsPhone, settings.FnsPassword);

                        if (data != null)
                        {
                            receiptDetailInfos.Add(data);
                        }
                    }
                    catch
                    {
                        throw;
                    }

                    Task.Delay(TimeSpan.FromSeconds(2)).Wait();
                }

                i++;
            }
        }
예제 #2
0
 public static ReceiptInfo ToCore(this FnsReceiptDetailInfo detailInfo, ReceiptMainInfo receiptMainInfo)
 {
     return(new ReceiptInfo
     {
         PurchaseTime = receiptMainInfo.PurchaseTime,
         FiscalSign = receiptMainInfo.FiscalSign,
         FiscalDocument = receiptMainInfo.FiscalDocument,
         FiscalNumber = receiptMainInfo.FiscalNumber,
         TotalAmount = (double)detailInfo.TotalSum / 100,
         RetailAddress = detailInfo.RetailPlaceAddress,
         RetailInn = detailInfo.RetailInn,
         CompanyName = detailInfo.StoreName,
         CashierName = detailInfo.Cashier,
         Items = detailInfo.Items.Select(x => x.ToCore()).ToArray()
     });
 }