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