Ejemplo n.º 1
0
		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;
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }