Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        /// <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);
        }