protected override ElapsedTimeInfo RetrieveAndAggregate( IDatabaseCustomerMarketPlace databaseCustomerMarketPlace, MP_CustomerMarketplaceUpdatingHistory historyRecord ) { log.Info("Starting to update Sage marketplace. Id:{0} Name:{1}", databaseCustomerMarketPlace.Id, databaseCustomerMarketPlace.DisplayName); SageSecurityInfo sageSecurityInfo = (Serialized.Deserialize <SageSecurityInfo>(databaseCustomerMarketPlace.SecurityData)); string accessToken = sageSecurityInfo.AccessToken; log.Info("Getting sales invoices..."); SageSalesInvoicesList salesInvoices = SageConnector.GetSalesInvoices( accessToken, Helper.GetSageDeltaPeriod(databaseCustomerMarketPlace) ); log.Info("Getting incomes..."); SageIncomesList incomes = SageConnector.GetIncomes( accessToken, Helper.GetSageDeltaPeriod(databaseCustomerMarketPlace) ); log.Info("Getting purchase invoices..."); SagePurchaseInvoicesList purchaseInvoices = SageConnector.GetPurchaseInvoices( accessToken, Helper.GetSageDeltaPeriod(databaseCustomerMarketPlace) ); log.Info("Getting expenditures..."); SageExpendituresList expenditures = SageConnector.GetExpenditures( accessToken, Helper.GetSageDeltaPeriod(databaseCustomerMarketPlace) ); var elapsedTimeInfo = new ElapsedTimeInfo(); log.Info("Saving request, {0} sales invoices, {1} purchase invoices, {2} incomes, {3} expenditures in DB...", salesInvoices.Count, purchaseInvoices.Count, incomes.Count, expenditures.Count); ElapsedTimeHelper.CalculateAndStoreElapsedTimeForCallInSeconds( elapsedTimeInfo, databaseCustomerMarketPlace.Id, ElapsedDataMemberType.StoreDataToDatabase, () => Helper.StoreSageData( databaseCustomerMarketPlace, salesInvoices, purchaseInvoices, incomes, expenditures, historyRecord ) ); log.Info("Getting payment statuses..."); var paymentStatuses = SageConnector.GetPaymentStatuses(accessToken); ElapsedTimeHelper.CalculateAndStoreElapsedTimeForCallInSeconds( elapsedTimeInfo, databaseCustomerMarketPlace.Id, ElapsedDataMemberType.StoreDataToDatabase, () => Helper.StoreSagePaymentStatuses(paymentStatuses) ); return(elapsedTimeInfo); }
public static SageSalesInvoicesList GetSalesInvoices(string accessToken, DateTime? fromDate) { List<SageSalesInvoice> salesInvoices = ExecuteRequestAndGetDeserializedResponse<SageSalesInvoiceDeserialization, SageSalesInvoice>(accessToken, config.SalesInvoicesRequest, fromDate, SageDesreializer.DeserializeSalesInvoice); var salesInvoicesList = new SageSalesInvoicesList(DateTime.UtcNow, salesInvoices); return salesInvoicesList; }