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)); }
/// <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)); }