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++; } }
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() }); }