/// <summary> /// Prepare the customer subscription list model /// </summary> /// <returns>Customer subscription list model</returns> public virtual CustomerSubscriptionListModel PrepareCustomerSubscriptionListModel() { var model = new CustomerSubscriptionListModel(); var subscriptions = _subscriptionService.SearchSubscriptions(storeId: _storeContext.CurrentStore.Id, customerId: _workContext.CurrentCustomer.Id); foreach (var subscription in subscriptions) { var subscriptionModel = new CustomerSubscriptionListModel.SubscriptionDetailsModel { Id = subscription.Id, CreatedOn = _dateTimeHelper.ConvertToUserTime(subscription.CreatedOnUtc, DateTimeKind.Utc), SubscriptionStatusEnum = subscription.SubscriptionStatus, SubscriptionStatus = subscription.SubscriptionStatus.GetLocalizedEnum(_localizationService, _workContext), PaymentStatus = subscription.PaymentStatus.GetLocalizedEnum(_localizationService, _workContext), IsReturnRequestAllowed = _subscriptionProcessingService.IsReturnRequestAllowed(subscription), CustomSubscriptionNumber = subscription.CustomSubscriptionNumber }; var subscriptionTotalInCustomerCurrency = _currencyService.ConvertCurrency(subscription.SubscriptionTotal, subscription.CurrencyRate); subscriptionModel.SubscriptionTotal = _priceFormatter.FormatPrice(subscriptionTotalInCustomerCurrency, true, subscription.CustomerCurrencyCode, false, _workContext.WorkingLanguage); model.Subscriptions.Add(subscriptionModel); } var recurringPayments = _subscriptionService.SearchRecurringPayments(_storeContext.CurrentStore.Id, _workContext.CurrentCustomer.Id); foreach (var recurringPayment in recurringPayments) { var recurringPaymentModel = new CustomerSubscriptionListModel.RecurringSubscriptionModel { Id = recurringPayment.Id, StartDate = _dateTimeHelper.ConvertToUserTime(recurringPayment.StartDateUtc, DateTimeKind.Utc).ToString(), CycleInfo = string.Format("{0} {1}", recurringPayment.CycleLength, recurringPayment.CyclePeriod.GetLocalizedEnum(_localizationService, _workContext)), NextPayment = recurringPayment.NextPaymentDate.HasValue ? _dateTimeHelper.ConvertToUserTime(recurringPayment.NextPaymentDate.Value, DateTimeKind.Utc).ToString() : "", TotalCycles = recurringPayment.TotalCycles, CyclesRemaining = recurringPayment.CyclesRemaining, InitialSubscriptionId = recurringPayment.InitialSubscription.Id, InitialSubscriptionNumber = recurringPayment.InitialSubscription.CustomSubscriptionNumber, CanCancel = _subscriptionProcessingService.CanCancelRecurringPayment(_workContext.CurrentCustomer, recurringPayment), CanRetryLastPayment = _subscriptionProcessingService.CanRetryLastRecurringPayment(_workContext.CurrentCustomer, recurringPayment) }; model.RecurringSubscriptions.Add(recurringPaymentModel); } return(model); }
public virtual ActionResult ReturnRequest(int subscriptionId) { var subscription = _subscriptionService.GetOrderById(subscriptionId); if (subscription == null || subscription.Deleted || _workContext.CurrentCustomer.Id != subscription.CustomerId) { return(new HttpUnauthorizedResult()); } if (!_subscriptionProcessingService.IsReturnRequestAllowed(subscription)) { return(RedirectToRoute("HomePage")); } var model = new SubmitReturnRequestModel(); model = _returnRequestModelFactory.PrepareSubmitReturnRequestModel(model, subscription); return(View(model)); }