private static GetStoreAvailabilityServiceResponse GetStoreAvailability(GetStoreAvailabilityServiceRequest serviceRequest)
            {
                var getStoreAvailabilityRealtimeRequest = new GetStoreAvailabilityRealtimeRequest(serviceRequest.ItemId, serviceRequest.VariantId);
                ReadOnlyCollection <ItemAvailabilityStore> availabilities = serviceRequest.RequestContext.Execute <EntityDataServiceResponse <ItemAvailabilityStore> >(getStoreAvailabilityRealtimeRequest).PagedEntityCollection.Results;

                return(new GetStoreAvailabilityServiceResponse(availabilities));
            }
示例#2
0
            /// <summary>
            /// Looks up for inventory in AX by item and variant ids.
            /// </summary>
            /// <param name="request">The request.</param>
            /// <returns>The collection of <see cref="ItemAvailabilityStore"/> items.</returns>
            private static EntityDataServiceResponse <ItemAvailabilityStore> GetStoreAvailability(GetStoreAvailabilityRealtimeRequest request)
            {
                var transactionClient = new TransactionService.TransactionServiceClient(request.RequestContext);
                ReadOnlyCollection <InventoryInfo> inventoryInfo = transactionClient.InventoryLookup(request.ItemId, request.VariantId);

                PagedResult <ItemAvailabilityStore> availabilities = inventoryInfo.Select(
                    info => new ItemAvailabilityStore
                {
                    AvailableQuantity   = decimal.Parse(info.InventoryAvailable, CultureInfo.InvariantCulture),
                    ItemId              = info.ItemId,
                    InventoryLocationId = info.InventoryLocationId,
                    OrgUnitName         = info.StoreName
                }).AsPagedResult();

                return(new EntityDataServiceResponse <ItemAvailabilityStore>(availabilities));
            }