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