public async Task TearDown() { foreach (var shoppingCartItem in _cart) { await _shoppingCartService.DeleteShoppingCartItemAsync(shoppingCartItem); } await _addressService.DeleteAddressAsync(_address); _shippingSettings.ActiveShippingRateComputationMethodSystemNames.Clear(); await _settingService.SaveSettingAsync(_shippingSettings); _paymentSettings.ActivePaymentMethodSystemNames.Clear(); await _settingService.SaveSettingAsync(_paymentSettings); _rewardPointsSettings.Enabled = true; await _settingService.SaveSettingAsync(_rewardPointsSettings); foreach (var history in await _rewardPointService.GetRewardPointsHistoryAsync(_customer.Id)) { await _rewardPointService.DeleteRewardPointsHistoryEntryAsync(history); } }
/// <summary> /// Prepare the customer reward points model /// </summary> /// <param name="page">Number of items page; pass null to load the first page</param> /// <returns> /// A task that represents the asynchronous operation /// The task result contains the customer reward points model /// </returns> public virtual async Task <CustomerRewardPointsModel> PrepareCustomerRewardPointsAsync(int?page) { //get reward points history var customer = await _workContext.GetCurrentCustomerAsync(); var store = await _storeContext.GetCurrentStoreAsync(); var pageSize = _rewardPointsSettings.PageSize; var rewardPoints = await _rewardPointService.GetRewardPointsHistoryAsync(customer.Id, store.Id, true, pageIndex : --page ?? 0, pageSize : pageSize); //prepare model var model = new CustomerRewardPointsModel { RewardPoints = await rewardPoints.SelectAwait(async historyEntry => { var activatingDate = await _dateTimeHelper.ConvertToUserTimeAsync(historyEntry.CreatedOnUtc, DateTimeKind.Utc); return(new CustomerRewardPointsModel.RewardPointsHistoryModel { Points = historyEntry.Points, PointsBalance = historyEntry.PointsBalance.HasValue ? historyEntry.PointsBalance.ToString() : string.Format(await _localizationService.GetResourceAsync("RewardPoints.ActivatedLater"), activatingDate), Message = historyEntry.Message, CreatedOn = activatingDate, EndDate = !historyEntry.EndDateUtc.HasValue ? null : (DateTime?)(await _dateTimeHelper.ConvertToUserTimeAsync(historyEntry.EndDateUtc.Value, DateTimeKind.Utc)) }); }).ToListAsync(), PagerModel = new PagerModel(_localizationService) { PageSize = rewardPoints.PageSize, TotalRecords = rewardPoints.TotalCount, PageIndex = rewardPoints.PageIndex, ShowTotalSummary = true, RouteActionName = "CustomerRewardPointsPaged", UseRouteLinks = true, RouteValues = new RewardPointsRouteValues { pageNumber = page ?? 0 } } }; //current amount/balance var rewardPointsBalance = await _rewardPointService.GetRewardPointsBalanceAsync(customer.Id, store.Id); var rewardPointsAmountBase = await _orderTotalCalculationService.ConvertRewardPointsToAmountAsync(rewardPointsBalance); var currentCurrency = await _workContext.GetWorkingCurrencyAsync(); var rewardPointsAmount = await _currencyService.ConvertFromPrimaryStoreCurrencyAsync(rewardPointsAmountBase, currentCurrency); model.RewardPointsBalance = rewardPointsBalance; model.RewardPointsAmount = await _priceFormatter.FormatPriceAsync(rewardPointsAmount, true, false); //minimum amount/balance var minimumRewardPointsBalance = _rewardPointsSettings.MinimumRewardPointsToUse; var minimumRewardPointsAmountBase = await _orderTotalCalculationService.ConvertRewardPointsToAmountAsync(minimumRewardPointsBalance); var minimumRewardPointsAmount = await _currencyService.ConvertFromPrimaryStoreCurrencyAsync(minimumRewardPointsAmountBase, currentCurrency); model.MinimumRewardPointsBalance = minimumRewardPointsBalance; model.MinimumRewardPointsAmount = await _priceFormatter.FormatPriceAsync(minimumRewardPointsAmount, true, false); return(model); }