コード例 #1
0
         /// <summary>
         /// Updates the publishing status and message for the given channel in AX.
         /// </summary>
         /// <param name="request">The request.</param>
         /// <returns>The null response.</returns>
         private NullResponse UpdateChannelPublishingStatus(UpdateChannelPublishingStatusRealtimeRequest request)
         {
             var transactionClient = new TransactionService.TransactionServiceClient(request.RequestContext);
             transactionClient.UpdateChannelPublishingStatus(request.ChannelId, request.PublishStatus, request.PublishStatusMessage);
 
             return new NullResponse();
         }
コード例 #2
0
            /// <summary>
            /// Updates the channel publish status.
            /// </summary>
            /// <param name="request">The service request.</param>
            /// <returns>The service response.</returns>
            private static NullResponse UpdateChannelPublishStatus(UpdateChannelPublishStatusServiceRequest request)
            {
                var           getOnlineChannelByIdDataRequest = new GetOnlineChannelByIdDataRequest(request.ChannelId, new ColumnSet());
                OnlineChannel channel = request.RequestContext.Runtime.Execute <SingleEntityDataServiceResponse <OnlineChannel> >(getOnlineChannelByIdDataRequest, request.RequestContext).Entity;

                var updateOnlineChannelPublishStatusDataRequest = new UpdateOnlineChannelPublishStatusDataRequest(request.ChannelId, request.PublishStatus, request.PublishStatusMessage);

                request.RequestContext.Runtime.Execute <SingleEntityDataServiceResponse <bool> >(updateOnlineChannelPublishStatusDataRequest, request.RequestContext);

                try
                {
                    var updateChannelPublishingStatusRequest = new UpdateChannelPublishingStatusRealtimeRequest(request.ChannelId, request.PublishStatus, request.PublishStatusMessage);
                    request.RequestContext.Execute <NullResponse>(updateChannelPublishingStatusRequest);
                }
                catch (CommerceException)
                {
                    // Revert the link status if it fails to update AX via transaction service.
                    updateOnlineChannelPublishStatusDataRequest = new UpdateOnlineChannelPublishStatusDataRequest(request.ChannelId, channel.PublishStatus, channel.PublishStatusMessage);
                    request.RequestContext.Runtime.Execute <SingleEntityDataServiceResponse <bool> >(updateOnlineChannelPublishStatusDataRequest, request.RequestContext);
                    throw;
                }

                return(new NullResponse());
            }