示例#1
0
        public async Task <ModifySubscriptionResponse> ModifySubscription(ModifySubscriptionRequest request)
        {
            ModifySubscriptionResponse response = new ModifySubscriptionResponse();

            var subscription = await _subscriptionRepository.FindBy(request.SubscriptionId);

            if (subscription == null)
            {
                throw new SubscriptionDoesNotExistException();
            }

            AddPseudoSkusToSubscription(request.PseudoSkusToAdd, subscription);

            UpdateLineQtys(request.ItemsToUpdate, subscription);

            RemoveItemsFromSubscription(request.ItemsToRemove, subscription);


            ThrowExceptionIfSubscriptionIsInvalid(subscription);

            await _subscriptionRepository.SaveAll();

            //When not using the EF repository, commnit using unit of work
            //_uow.Commit();

            response.Subscription = _mapper.Map <SubscriptionView>(subscription);

            return(response);
        }
示例#2
0
        public void ModifySubscriptionAsyncNull()
        {
            var response = new ModifySubscriptionResponse();
            var channel  = new TestRequestChannel(response);

            channel.Invoking(c => c.ModifySubscriptionAsync(null))
            .Should().Throw <ArgumentNullException>();
        }
示例#3
0
        public static ModifySubscriptionResponse Unmarshall(UnmarshallerContext _ctx)
        {
            ModifySubscriptionResponse modifySubscriptionResponse = new ModifySubscriptionResponse();

            modifySubscriptionResponse.HttpResponse   = _ctx.HttpResponse;
            modifySubscriptionResponse.ErrCode        = _ctx.StringValue("ModifySubscription.ErrCode");
            modifySubscriptionResponse.ErrMessage     = _ctx.StringValue("ModifySubscription.ErrMessage");
            modifySubscriptionResponse.RequestId      = _ctx.StringValue("ModifySubscription.RequestId");
            modifySubscriptionResponse.Success        = _ctx.StringValue("ModifySubscription.Success");
            modifySubscriptionResponse.HttpStatusCode = _ctx.StringValue("ModifySubscription.HttpStatusCode");

            return(modifySubscriptionResponse);
        }
示例#4
0
        public async Task ModifySubscriptionAsync()
        {
            var response = new ModifySubscriptionResponse();
            var request  = new ModifySubscriptionRequest();
            var channel  = new TestRequestChannel(response);

            var ret = await channel.ModifySubscriptionAsync(request);

            ret
            .Should().BeSameAs(response);

            channel.Request
            .Should().BeSameAs(request);
        }
示例#5
0
        /// <summary>
        /// Invokes the ModifySubscription service.
        /// </summary>
        public IServiceResponse ModifySubscription(IServiceRequest incoming)
        {
            ModifySubscriptionResponse response = null;

            ModifySubscriptionRequest request = (ModifySubscriptionRequest)incoming;

            double revisedPublishingInterval = 0;
            uint revisedLifetimeCount = 0;
            uint revisedMaxKeepAliveCount = 0;

            response = new ModifySubscriptionResponse();

            response.ResponseHeader = ServerInstance.ModifySubscription(
               request.RequestHeader,
               request.SubscriptionId,
               request.RequestedPublishingInterval,
               request.RequestedLifetimeCount,
               request.RequestedMaxKeepAliveCount,
               request.MaxNotificationsPerPublish,
               request.Priority,
               out revisedPublishingInterval,
               out revisedLifetimeCount,
               out revisedMaxKeepAliveCount);

            response.RevisedPublishingInterval = revisedPublishingInterval;
            response.RevisedLifetimeCount      = revisedLifetimeCount;
            response.RevisedMaxKeepAliveCount  = revisedMaxKeepAliveCount;

            return response;
        }
示例#6
0
        /// <summary>
        /// Initializes the message with a service fault.
        /// </summary>
        public ModifySubscriptionResponseMessage(ServiceFault ServiceFault)
        {
            this.ModifySubscriptionResponse = new ModifySubscriptionResponse();

            if (ServiceFault != null)
            {
                this.ModifySubscriptionResponse.ResponseHeader = ServiceFault.ResponseHeader;
            }
        }
示例#7
0
 /// <summary>
 /// Initializes the message with the body.
 /// </summary>
 public ModifySubscriptionResponseMessage(ModifySubscriptionResponse ModifySubscriptionResponse)
 {
     this.ModifySubscriptionResponse = ModifySubscriptionResponse;
 }
示例#8
0
        /// <summary cref="IServiceMessage.CreateResponse" />
        public object CreateResponse(IServiceResponse response)
        {
            ModifySubscriptionResponse body = response as ModifySubscriptionResponse;

            if (body == null)
            {
                body = new ModifySubscriptionResponse();
                body.ResponseHeader = ((ServiceFault)response).ResponseHeader;
            }

            return new ModifySubscriptionResponseMessage(body);
        }