public async Task <AccountResponse> CreateSubscription(SubscriptionCreate subscriptionModel) { var account = _billingPaymentProvider.CreateSubscriptionViaPurchase(subscriptionModel); await _messageSession.Send(account); var accountResponse = _mapper.Map <AccountResponse>(account); return(accountResponse); }
public async Task <IActionResult> CreateSubscription(SubscriptionCreate subscriptionModel) { var accountModel = await _billingPaymentMediator.CreateSubscriptionAsync(subscriptionModel); if (accountModel == null) { return(BadRequest("Account doesn't exist")); } return(Created(Request?.Path.Value, accountModel)); }
public Account CreateSubscriptionViaPurchase(SubscriptionCreate subscriptionModel) { var purchaseCreate = SubscriptionPlanContainer.subscriptionPlanDictionary[subscriptionModel.PlanCode].CreatePurchase(subscriptionModel); var invoiceCollection = _recurlyAdapter.CreateSubscriptionViaPurchase(purchaseCreate); var invoiceDto = _mapper.Map <InvoiceResponse>(invoiceCollection); var account = _accountRepository.GetBy(x => x.Code == subscriptionModel.AccountCode); account.Invoices = account.Invoices ?? new List <InvoiceResponse>(); account.Invoices.Add(invoiceDto); return(account); }
public async Task <AccountResponse> CreateSubscriptionAsync(SubscriptionCreate subscriptionModel) { var account = _billingPaymentProvider.CreateSubscription(subscriptionModel); if (account == null) { return(null); } var accountResponse = _mapper.Map <AccountResponse>(account); await _messageSession.Send(account); return(accountResponse); }
public Account CreateSubscription(SubscriptionCreate subscriptionModel) { var account = _accountRepository.GetBy(x => x.Code == subscriptionModel.AccountCode); if (account == null) { return(null); } var subscriptionDto = _mapper.Map <SubscriptionResponse>(_recurlyAdapter.CreateSubscription(subscriptionModel)); account.Subscriptions = account.Subscriptions ?? new List <SubscriptionResponse>(); account.Subscriptions.Add(subscriptionDto); return(account); }
public async Task CreateSubscription_AccountDoesntExist_ReturnNull() { var request = new SubscriptionCreate { AccountCode = "testCode", PlanCode = "monthly_plan", UnitAmount = 99999 }; _mockBillingPaymentProvider.Setup(x => x.CreateSubscription(It.IsAny <SubscriptionCreate>())) .Returns(() => null); var result = await _billingPaymentMediator .CreateSubscriptionAsync(request); Assert.Null(result); }
public async Task CreateSubscription_SuccessfullCreate_SentMessage() { var request = new SubscriptionCreate { AccountCode = "testCode", PlanCode = "monthly_plan", UnitAmount = 99999 }; var account = new Account { Code = "testCode", FirstName = "testName", LastName = "testlastName", Invoices = new List <InvoiceResponse>(), Subscriptions = new List <SubscriptionResponse> { new SubscriptionResponse { CollectionMethod = "manual", PlanCode = "monthly_plan" } }, }; _mockBillingPaymentProvider.Setup(m => m.CreateSubscription(It.IsAny <SubscriptionCreate>())) .Returns(account); var result = await _billingPaymentMediator .CreateSubscriptionAsync(request); var message = (Account)_testableMessageSession.SentMessages[0].Message; Assert.NotNull(result); Assert.Single(_testableMessageSession.SentMessages); Assert.Equal(request.PlanCode, result.Subscriptions[0].PlanCode); Assert.Equal(request.AccountCode, message.Code); }
public IActionResult CreateSubscriptionViaPurchase(SubscriptionCreate subscriptionModel) { _billingPaymentMediator.CreateSubscription(subscriptionModel); return(Ok()); }
public SubscriptionCreateCommand(SubscriptionCreate data, User user) : base(user) { Data = data; }