public async Task <UpdatePlanResponse> Handle(UpdatePlanRequest request, CancellationToken cancellationToken)
        {
            Plan getplan = await _planRepository.GetByIdAsync(request.PlanId);

            var update = new Plan
            {
                TypeId            = request.PlanType.GetHashCode() == null ? getplan.TypeId : 0,
                Amount            = request.Amount == null ? getplan.Amount : 0,
                InternetFranchise = request.InternetFranchise == null ? getplan.InternetFranchise : 0,
                Mininutes         = request.Mininutes == null ? getplan.Mininutes : 0,
                OperatorId        = request.PlanOperator.GetHashCode() == null ? getplan.PlanOperator.IdOperator : 0,
                PlanOperator      = new PlanOperator
                {
                    IdOperator = request.PlanOperator.GetHashCode() == null ? getplan.OperatorId : 0, NameOperator = request.PlanOperator.ToString() == null ? getplan.PlanOperator.NameOperator : ""
                },
                PlanId   = getplan.PlanId,
                PlanType = new PlanType {
                    IdType = request.PlanType.GetHashCode() == null ? getplan.TypeId : 0, Type = request.PlanType.ToString() == null ? getplan.PlanType.Type : ""
                }
            };
            var response = await _planRepository.UpdatePlanAsync(update);

            return(new UpdatePlanResponse()
            {
                Response = response
            });
        }
        public void Should_Update_Plan()
        {
            string            randomString = DateTime.Now.ToString("yyyyMMddHHmmssfff");
            UpdatePlanRequest request      = new UpdatePlanRequest()
            {
                Locale                   = Locale.TR.ToString(),
                Name                     = $"updated-plan-name-{randomString}",
                ConversationId           = "123456789",
                TrialPeriodDays          = 5,
                PricingPlanReferenceCode = "pricingPlanReferenceCode"
            };

            ResponseData <PlanResource> response = Plan.Update(request, options);

            PrintResponse(response);

            Assert.AreEqual(response.Status, Status.SUCCESS.ToString());
            Assert.AreEqual($"updated-plan-name-{randomString}", response.Data.Name);
            Assert.AreEqual(Currency.TRY.ToString(), response.Data.CurrencyCode);
            Assert.AreEqual(5, response.Data.TrialPeriodDays);
            Assert.AreEqual(12, response.Data.RecurrenceCount);
            Assert.IsNotNull(response.Data.ReferenceCode);
            Assert.IsNotNull(response.SystemTime);
            Assert.Null(response.ErrorMessage);
        }
Exemple #3
0
        public void Should_Update_Plan()
        {
            string randomString = DateTime.Now.ToString("yyyyMMddHHmmssfff");
            CreateProductRequest createProductRequest = new CreateProductRequest
            {
                Description    = "product-description",
                Locale         = Locale.TR.ToString(),
                Name           = $"product-name-{randomString}",
                ConversationId = "123456789"
            };

            ResponseData <ProductResource> createProductResponse = Product.Create(createProductRequest, _options);

            CreatePlanRequest createPlanRequest = new CreatePlanRequest()
            {
                Locale               = Locale.TR.ToString(),
                Name                 = $"plan-name-{randomString}",
                ConversationId       = "123456789",
                TrialPeriodDays      = 3,
                Price                = "5.23",
                CurrencyCode         = Currency.TRY.ToString(),
                PaymentInterval      = PaymentInterval.WEEKLY.ToString(),
                RecurrenceCount      = 12,
                PaymentIntervalCount = 1,
                PlanPaymentType      = PlanPaymentType.RECURRING.ToString(),
                ProductReferenceCode = createProductResponse.Data.ReferenceCode
            };

            ResponseData <PlanResource> createPlanResponse = Plan.Create(createPlanRequest, _options);

            UpdatePlanRequest request = new UpdatePlanRequest()
            {
                Locale                   = Locale.TR.ToString(),
                Name                     = $"updated-plan-name-{randomString}",
                ConversationId           = "123456789",
                TrialPeriodDays          = 5,
                PricingPlanReferenceCode = createPlanResponse.Data.ReferenceCode
            };

            ResponseData <PlanResource> response = Plan.Update(request, _options);

            PrintResponse(response);

            Assert.AreEqual(response.Status, Status.SUCCESS.ToString());
            Assert.AreEqual($"updated-plan-name-{randomString}", response.Data.Name);
            Assert.AreEqual("5.23", response.Data.Price.RemoveTrailingZeros());
            Assert.AreEqual(Currency.TRY.ToString(), response.Data.CurrencyCode);
            Assert.AreEqual(createProductResponse.Data.ReferenceCode, response.Data.ProductReferenceCode);
            Assert.AreEqual(PaymentInterval.WEEKLY.ToString(), response.Data.PaymentInterval);
            Assert.AreEqual(1, response.Data.PaymentIntervalCount);
            Assert.AreEqual(5, response.Data.TrialPeriodDays);
            Assert.AreEqual(PlanPaymentType.RECURRING.ToString(), response.Data.PlanPaymentType);
            Assert.AreEqual(12, response.Data.RecurrenceCount);
            Assert.AreEqual("ACTIVE", response.Data.Status);
            Assert.IsNotNull(response.Data.ReferenceCode);
            Assert.IsNotNull(response.Data.CreatedDate);
            Assert.IsNotNull(response.SystemTime);
            Assert.Null(response.ErrorMessage);
        }
Exemple #4
0
        public async Task <IActionResult> UpdatePlan([FromBody] UpdatePlanRequest request)
        {
            try
            {
                var response = await _mediator.Send(request);

                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
        internal static UpdatePlanRequest BuildUpdatePlanRequest()
        {
            var request = new UpdatePlanRequest()
            {
                BillingType = "postpaid",
                Metadata    = new Dictionary <string, string>()
                {
                    { "update", "plan" }
                },
                Name           = "Novo nome",
                PaymentMethods = new List <string> {
                    "credit_card"
                },
                Currency      = "BRL",
                Interval      = "month",
                IntervalCount = 1,
                Status        = "active"
            };

            return(request);
        }
Exemple #6
0
        public static ResponseData <PlanResource> Update(UpdatePlanRequest request, Options options)
        {
            string uri = $"{options.BaseUrl}/v2/subscription/pricing-plans/{request.PricingPlanReferenceCode}";

            return(RestHttpClientV2.Create().Post <ResponseData <PlanResource> >(uri, GetHttpHeadersWithRequestBody(request, uri, options), request));
        }