Exemple #1
0
        public CreateSubscriptionResponse InvokeCreateSubscription()
        {
            // Create a request.
            CreateSubscriptionInput request = new CreateSubscriptionInput();

            request.SellerId = sellerId;

            request.MWSAuthToken  = mwsAuthToken;
            request.MarketplaceId = marketplaceId;

            Destination destination = new Destination();

            destination.DeliveryChannel = "SQS";
            AttributeKeyValueList attributes = new AttributeKeyValueList();
            AttributeKeyValue     att        = new AttributeKeyValue()
            {
                Key = "sqsQueueUrl", Value = "https://sqs.us-west-2.amazonaws.com/889329361753/AnyOfferChangedQueueDev"
            };

            attributes.Member.Add(att);
            destination.AttributeList = attributes;

            Subscription subscription = new Subscription();

            subscription.Destination      = destination;
            subscription.NotificationType = "AnyOfferChanged";
            subscription.IsEnabled        = true;
            request.Subscription          = subscription;
            return(this.client.CreateSubscription(request));
        }
        public IActionResult Create([FromBody] CreateSubscriptionInput sub)
        {
            var res = new CreateSubscription(Repository, sub).Execute();

            if (res == -1)
            {
                return(Conflict());
            }
            return(Ok(res));
        }
        public void ShouldFailCreatingSubscription()
        {
            var now         = DateTime.Now;
            var sub         = new domain.Subscription(0, 0, 0, now, 0, true);
            var input       = new CreateSubscriptionInput(0, 0, 0, now, true, new domain.SubscriptionType());
            var mockSubRepo = new Mock <ISubscriptionRepository>();

            mockSubRepo.Setup(m => m.Create(It.IsAny <domain.Subscription>())).Returns(-1);

            var res = new CreateSubscription(mockSubRepo.Object, input).Execute();

            Assert.AreEqual(-1, res);
        }
Exemple #4
0
        public CreateSubscriptionResponse InvokeCreateSubscription()
        {
            // Create a request.
            CreateSubscriptionInput request = new CreateSubscriptionInput();
            string sellerId = "example";

            request.SellerId = sellerId;
            string mwsAuthToken = "example";

            request.MWSAuthToken = mwsAuthToken;
            string marketplaceId = "example";

            request.MarketplaceId = marketplaceId;
            Subscription subscription = new Subscription();

            request.Subscription = subscription;
            return(this.client.CreateSubscription(request));
        }
        public void CreateSubscriptionAnyOfferChanged()
        {
            List <AttributeKeyValue> attributeKeyValues = new List <AttributeKeyValue>
            {
                new AttributeKeyValue
                {
                    Key   = "sqsQueueUrl",
                    Value = c_sqsQueueUrl
                }
            };

            AttributeKeyValueList attributeKeyValueList = new AttributeKeyValueList
            {
                Member = attributeKeyValues
            };

            Destination destination = new Destination
            {
                DeliveryChannel = "SQS",
                AttributeList   = attributeKeyValueList
            };

            Subscription subscription = new Subscription
            {
                IsEnabled        = true,
                NotificationType = "AnyOfferChanged",
                Destination      = destination
            };

            CreateSubscriptionInput createSubscriptionInput = new CreateSubscriptionInput
            {
                SellerId      = m_sellerId,
                MarketplaceId = m_marketPlaceId,
                Subscription  = subscription
            };

            m_mwsSubscriptionServiceClient.CreateSubscription(createSubscriptionInput);
        }
        public async Task <SubscriptionOrderDto> CreateSubscription(CreateSubscriptionInput input)
        {
            PlanPrice planPrice = _planPriceRepository.Get(input.PlanPriceId);

            if (planPrice.IsNull())
            {
                throw new UserFriendlyException("No existe un PlanPrice con ese Id");
            }

            Plan plan = _planRepository.Get(planPrice.PlanId);

            Subscription actualSubscriptions = _subscriptionRepository.GetSubscriptionPlanActive(input.UserId, plan.ProductId);

            if (actualSubscriptions.IsNotNull())
            {
                throw new UserFriendlyException("El usuario ya esta suscripto a un Plan del mismo producto.");
            }



            Subscription subscription = _subscriptionDomainService.CreateSubscription(plan);

            subscription = _subscriptionRepository.Insert(subscription);



            SubscriptionCycle subscriptionCycle = _subscriptionCycleDomainService.CreateSubscriptionCycle(subscription, DateTime.Now);

            _subscriptionCycleDomainService.PaymentPendingSubscriptionCycle(subscriptionCycle);
            subscriptionCycle = _subscriptionCycleRepository.Insert(subscriptionCycle);


            Order order = _orderDomainService.CreateOrderForSubscription(planPrice, input.UserId, DateTime.Now);

            _orderDomainService.PaymentPendingOrder(order);
            order = _orderRepository.Insert(order);



            SubscriptionCycleOrder subscriptionCycleOrder = _subscriptionCycleOrderDomainService.CreateSubscriptionCycleOrder(subscriptionCycle, order);

            _subscriptionCycleOrderRepository.Insert(subscriptionCycleOrder);

            Invoice invoice = _invoiceDomainService.CreateInvoice(order, DateTime.Now);

            _invoiceDomainService.ActiveInvoice(invoice);
            _invoiceRepository.Insert(invoice);



            InvoicePaymentProvider invoicePaymentProvider = planPrice.Currency.Code switch
            {
                Domain.ValueObjects.Currency.CurrencyValue.USD => await _paypalService.CreateUriForPayment(invoice, order, plan),
                Domain.ValueObjects.Currency.CurrencyValue.ARS => await _mobbexService.CreateUriForPayment(invoice, order, plan),
                _ => throw new NotImplementedException()
            };

            invoicePaymentProvider = _invoicePaymentProviderRepository.Insert(invoicePaymentProvider);


            return(new SubscriptionOrderDto
            {
                Subscription = _mapper.Map <SubscriptionDto>(subscription),
                SubscriptionCycle = _mapper.Map <SubscriptionCycleDto>(subscriptionCycle),
                SubscriptionCycleOrder = _mapper.Map <SubscriptionCycleOrderDto>(subscriptionCycleOrder),
                Order = _mapper.Map <OrderDto>(order),
                InvoicePaymentProvider = _mapper.Map <InvoicePaymentProviderDto>(invoicePaymentProvider),
            });
        }
    }
 public CreateSubscription(ISubscriptionRepository subscriptionRepository, CreateSubscriptionInput input)
 {
     this.subscriptionRepository = subscriptionRepository;
     Input = input;
 }
 public CreateSubscriptionResponse CreateSubscription(CreateSubscriptionInput request)
 {
     return(newResponse <CreateSubscriptionResponse>());
 }
 public CreateSubscriptionResponse CreateSubscription(CreateSubscriptionInput request)
 {
     return(connection.Call(
                new MWSSubscriptionsServiceClient.Request <CreateSubscriptionResponse>("CreateSubscription", typeof(CreateSubscriptionResponse), servicePath),
                request));
 }