Пример #1
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());
            }
Пример #2
0
            /// <summary>
            /// Updates the publishing status of the channel.
            /// </summary>
            /// <param name="request">The update online channel publish status data request.</param>
            /// <returns>Result that indicates whether the update is successful.</returns>
            private SingleEntityDataServiceResponse <bool> UpdatePublishStatus(UpdateOnlineChannelPublishStatusDataRequest request)
            {
                ThrowIf.Null(request, "request");

                Stopwatch processTimer = Stopwatch.StartNew();

                ParameterSet parameters = new ParameterSet();

                parameters["@bi_ChannelId"]             = request.ChannelId;
                parameters["@i_PublishStatus"]          = request.PublishStatus;
                parameters["@nvc_PublishStatusMessage"] = request.PublishStatusMessage;

                int errorCode;

                using (SqlServerDatabaseContext sqlServerDatabaseContext = new SqlServerDatabaseContext(request))
                {
                    errorCode = sqlServerDatabaseContext.ExecuteStoredProcedureNonQuery(UpdateOnlineChannelPublishStatusSprocName, parameters);
                }

                processTimer.Stop();
                NetTracer.Information("** timer info: UpdatePublishStatus completed in {0} ms", processTimer.ElapsedMilliseconds);

                return(new SingleEntityDataServiceResponse <bool>(errorCode == (int)DatabaseErrorCodes.Success));
            }