private static ReadOnlyCollection <StockCountJournal> GetStockCountJournalsFromAx(RequestContext context) { ChannelConfiguration channelConfiguration = context.GetChannelConfiguration(); var stockCountJournalsRequest = new GetStockCountJournalsRealtimeRequest(channelConfiguration.InventLocation); return(context.Execute <EntityDataServiceResponse <StockCountJournal> >(stockCountJournalsRequest).PagedEntityCollection.Results); }
/// <summary> /// Creates the StockCount Journal in AX /// If the StockCount creation is successful, it syncs the changes from AX to RetailServer tables. /// It deletes all the journals that are saved locally. /// </summary> /// <param name="context">The request context.</param> /// <param name="description">The journal description.</param> /// <returns> /// The stock count journal response. /// </returns> public static CreateStockCountJournalServiceResponse CreateStockCountJournal(RequestContext context, string description) { var channelConfiguration = context.GetChannelConfiguration(); var createStockCountJournalRealtimeRequest = new CreateStockCountJournalRealtimeRequest(channelConfiguration.InventLocation, description); var createdStockCountJournal = context.Execute <EntityDataServiceResponse <StockCountJournal> >(createStockCountJournalRealtimeRequest).PagedEntityCollection.Results; var stockCountJournalsRequest = new GetStockCountJournalsRealtimeRequest(channelConfiguration.InventLocation); var stockCountJournalList = context.Execute <EntityDataServiceResponse <StockCountJournal> >(stockCountJournalsRequest).PagedEntityCollection.Results; AddUpdateStockCountJournal(context, stockCountJournalList); var stockCountListToDelete = GetUnusedJournals(context, stockCountJournalList); // Deletes the unused journals that are saved locally in RetailServer if (stockCountListToDelete != null && stockCountListToDelete.Count > 0) { var deleteRequest = new DeleteStockCountJournalsDataRequest(stockCountListToDelete.Select(journal => journal.JournalId)); context.Runtime.Execute <NullResponse>(deleteRequest, context); } return(new CreateStockCountJournalServiceResponse(createdStockCountJournal.FirstOrDefault())); }
/// <summary> /// Gets stock count journals in AX by location id. /// </summary> /// <param name="request">The request.</param> /// <returns>The collection of <see cref="StockCountJournal"/> items.</returns> private static EntityDataServiceResponse <StockCountJournal> GetStockCountJournals(GetStockCountJournalsRealtimeRequest request) { var transactionClient = new TransactionService.TransactionServiceClient(request.RequestContext); PagedResult <StockCountJournal> stockCountJournals = transactionClient.GetStockCountJournals(request.LocationId); return(new EntityDataServiceResponse <StockCountJournal>(stockCountJournals)); }