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