private BackupObject GetBackupObject(Action<ExportImportProgressInfo> progressCallback) { var retVal = new BackupObject(); var progressInfo = new ExportImportProgressInfo(); const CustomerOrderResponseGroup responseGroup = CustomerOrderResponseGroup.WithAddresses | CustomerOrderResponseGroup.WithItems | CustomerOrderResponseGroup.WithShipments | CustomerOrderResponseGroup.WithInPayments; var searchResponse = _customerOrderSearchService.Search(new SearchCriteria { Count = int.MaxValue }); progressInfo.Description = String.Format("{0} orders loading", searchResponse.CustomerOrders.Count()); progressCallback(progressInfo); retVal.CustomerOrders = searchResponse.CustomerOrders.Select((x) => _customerOrderService.GetById(x.Id, responseGroup)).ToList(); return retVal; }
private BackupObject GetBackupObject(Action <ExportImportProgressInfo> progressCallback) { var retVal = new BackupObject(); var progressInfo = new ExportImportProgressInfo(); var searchCriteria = AbstractTypeFactory <CustomerOrderSearchCriteria> .TryCreateInstance(); searchCriteria.ResponseGroup = CustomerOrderResponseGroup.Default.ToString(); searchCriteria.Take = 0; var searchResponse = _customerOrderSearchService.SearchCustomerOrders(searchCriteria); const int take = 20; for (var skip = 0; skip < searchResponse.TotalCount; skip += take) { searchCriteria = AbstractTypeFactory <CustomerOrderSearchCriteria> .TryCreateInstance(); searchCriteria.ResponseGroup = CustomerOrderResponseGroup.Full.ToString(); searchCriteria.WithPrototypes = true; searchCriteria.Skip = skip; searchCriteria.Take = take; searchResponse = _customerOrderSearchService.SearchCustomerOrders(searchCriteria); progressInfo.Description = string.Format(CultureInfo.InvariantCulture, "{0} of {1} orders loading", Math.Min(skip + take, searchResponse.TotalCount), searchResponse.TotalCount); progressCallback(progressInfo); retVal.CustomerOrders.AddRange(searchResponse.Results); } //Do not serialize shipment and payment methods var allPayments = retVal.CustomerOrders.SelectMany(x => x.InPayments); foreach (var payment in allPayments) { payment.PaymentMethod = null; } var allShipments = retVal.CustomerOrders.SelectMany(x => x.Shipments); foreach (var shipment in allShipments) { shipment.ShippingMethod = null; } return(retVal); }
private BackupObject GetBackupObject(Action <ExportImportProgressInfo> progressCallback) { var retVal = new BackupObject(); var progressInfo = new ExportImportProgressInfo(); const CustomerOrderResponseGroup responseGroup = CustomerOrderResponseGroup.WithAddresses | CustomerOrderResponseGroup.WithItems | CustomerOrderResponseGroup.WithShipments | CustomerOrderResponseGroup.WithInPayments; var searchResponse = _customerOrderSearchService.Search(new SearchCriteria { Count = int.MaxValue }); progressInfo.Description = String.Format("{0} orders loading", searchResponse.CustomerOrders.Count()); progressCallback(progressInfo); retVal.CustomerOrders = searchResponse.CustomerOrders.Select((x) => _customerOrderService.GetById(x.Id, responseGroup)).ToList(); return(retVal); }
private BackupObject GetBackupObject(Action <ExportImportProgressInfo> progressCallback) { var retVal = new BackupObject(); var progressInfo = new ExportImportProgressInfo(); var take = 20; var searchResponse = _customerOrderSearchService.SearchCustomerOrders(new CustomerOrderSearchCriteria { Take = 0, ResponseGroup = CustomerOrderResponseGroup.Default.ToString() }); for (int skip = 0; skip < searchResponse.TotalCount; skip += take) { searchResponse = _customerOrderSearchService.SearchCustomerOrders(new CustomerOrderSearchCriteria { Skip = skip, Take = take, WithPrototypes = true, ResponseGroup = CustomerOrderResponseGroup.Full.ToString() }); progressInfo.Description = String.Format("{0} of {1} orders loading", Math.Min(skip + take, searchResponse.TotalCount), searchResponse.TotalCount); progressCallback(progressInfo); retVal.CustomerOrders.AddRange(searchResponse.Results); } //Do not serialize shipment and payment methods var allPayments = retVal.CustomerOrders.SelectMany(x => x.InPayments); var allShipments = retVal.CustomerOrders.SelectMany(x => x.Shipments); foreach (var payment in allPayments) { payment.PaymentMethod = null; } foreach (var shipment in allShipments) { shipment.ShippingMethod = null; } return(retVal); }