Example #1
0
        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);
        }
Example #2
0
		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;
		}