/// <summary> /// Gets plans from Reepay /// </summary> /// <param name="onlyActive">only active plans</param> /// <returns>statuscode and list ofplans</returns> public ApiResponse <List <Plan> > GetPlans(bool onlyActive) { var config = this.GetDefaultApiConfiguration(); var api = new PlanApi(config); var myClassname = MethodBase.GetCurrentMethod().Name; for (var i = 0; i <= MaxNoOfRetries; i++) { try { var apiResponse = api.GetPlansListWithHttpInfo(onlyActive); return(apiResponse); } catch (ApiException apiException) { this._log.Error($"{myClassname} {apiException.ErrorCode} {apiException.ErrorContent}"); return(new ApiResponse <List <Plan> >(apiException.ErrorCode, null, null)); ; } catch (Exception) when(i < MaxNoOfRetries) { this._log.Debug($"{myClassname} retry attempt {i}"); } } return(new ApiResponse <List <Plan> >((int)HttpStatusCode.InternalServerError, null, null)); }
public async Task Change_a_subscription_plan() { // Arrange var subscriptionRequest = await SubscriptionApi.GetAsync <PaggedResponseMessage <SubscriptionModel> >().ConfigureAwait(false); var subscriptionItems = new List <SubscriptionSubitem> { new SubscriptionSubitem { description = "Mensalidade", price_cents = 65000, quantity = 1, recurrent = true } }; var request = new Request.SubscriptionRequestMessage(createdCustomer.id) { PlanId = createdPlan.identifier, IsCreditBased = false, Subitems = subscriptionItems }; var currentSubscription = await SubscriptionApi.CreateAsync(request).ConfigureAwait(false); var radomPlan = Guid.NewGuid().ToString(); var newdPlan = await PlanApi.CreateAsync($"{radomPlan}-12x", $"{radomPlan}-Plan", 1, "months", 0, "BRL", null, null, Constants.PaymentMethod.BANK_SLIP).ConfigureAwait(false); // Act var suspendendSubscription = await SubscriptionApi.ChangePlanAsync(currentSubscription.id, newdPlan.identifier).ConfigureAwait(false); // Assert suspendendSubscription.Should().NotBeSameAs(currentSubscription); }
public static Plan ToPlan(this PlanApi planApi) { List <User> interestedUsers; try { interestedUsers = planApi.InterestedUsers.Select(u => new User(u)).ToList(); } catch (ArgumentNullException) { interestedUsers = new List <User>(); } if (string.IsNullOrEmpty(planApi.StartDate)) { planApi.StartDate = "3000-01-01 00:00:00"; } if (string.IsNullOrEmpty(planApi.EndDate)) { planApi.EndDate = "3000-01-01 00:00:00"; } return(new Plan { Id = planApi.Id, Name = planApi.Name, Type = new PlanType(planApi.Type), User = new User(planApi.User), Status = new PlanStatus(planApi.Status), StartDate = DateTime.Parse(planApi.StartDate), EndDate = DateTime.Parse(planApi.EndDate), Description = planApi.Description, Cost = planApi.Cost, InterestedUsers = interestedUsers }); }
public IActionResult Update([FromBody] PlanApi planApi) { try { if (ModelState.IsValid) { if (planApi.Id <= 0) { return(BadRequest($"The plan's id is required or is invalid: {planApi.Id}")); } var convertedPlan = planApi.ToPlan(); var updatedPlan = ConnectionDB.PlansModule.DataPlan.Save(convertedPlan); if (updatedPlan != null) { return(Ok()); } } return(BadRequest()); } catch (Exception e) { ErrorResponse errorResponse = ErrorResponse.From(e); return(StatusCode(500, errorResponse)); } }
public ActionResult Plan([FromBody] PlanApi PlanApi) { Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\n\r"); if (PlanApi == null) { return(Json(new ResultsJson(new Message(CodeMessage.PostNull, "PostNull"), null))); } return(Json(Global.BUSS.BussResults(this, PlanApi))); }
public async Task <ActionResult> Save(PlanApi planApi) { var api = new PlanApiClient(); var convertedPlan = planApi.ToPlan(); await api.Save(convertedPlan); ViewBag.Plan = convertedPlan; return(View()); }
public async Task <PlanApi> Save(Plan plan) { string token = await new AuthApiClient().GetToken(); _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); PlanApi planToApi = plan.ToPlanApi(); HttpResponseMessage response; if (planToApi.Id == 0) { response = await _httpClient.PostAsJsonAsync <PlanApi>($"Plan", planToApi); } else { response = await _httpClient.PutAsJsonAsync <PlanApi>($"Plan", planToApi); } response.EnsureSuccessStatusCode(); return(await response.Content.ReadAsAsync <PlanApi>()); }
public IActionResult Create([FromBody] PlanApi planApi) { try { if (ModelState.IsValid) { planApi.Id = 0; var convertedPlan = planApi.ToPlan(); convertedPlan.InterestedUsers = planApi.InterestedUsers.Select(i => new User(i)).ToList(); var createdPlan = ConnectionDB.PlansModule.DataPlan.Save(convertedPlan); if (createdPlan != null) { var uri = Url.Action("Create", planApi.Id); return(Created(uri, planApi)); } } return(BadRequest(ErrorResponse.FromModelState(ModelState))); } catch (Exception e) { ErrorResponse errorResponse = ErrorResponse.From(e); return(StatusCode(500, errorResponse)); } }
public async Task FinalizeTests() { PlanApi.Dispose(); SubscriptionApi.Dispose(); CustomerApi.Dispose(); }
public void Init() { instance = new PlanApi(); }