コード例 #1
0
        private async Task SelectCheckoutDataAsync()
        {
            var selectedData = SelectedCheckoutData;
            IEnumerable <CheckoutDataViewModel> checkoutData = null;

            switch (selectedData.DataType)
            {
            case Constants.ShippingAddress:
                checkoutData = (await _checkoutDataRepository.GetAllShippingAddressesAsync()).Select(address => CreateCheckoutData(address, Constants.ShippingAddress));
                AllCheckoutDataViewModels = new ReadOnlyCollection <CheckoutDataViewModel>(checkoutData.ToList());
                SelectCheckoutDataLabel   = string.Format(CultureInfo.CurrentCulture, _resourceLoader.GetString("SelectCheckoutData"), _resourceLoader.GetString("ShippingAddress"));
                break;

            case Constants.BillingAddress:
                checkoutData = (await _checkoutDataRepository.GetAllBillingAddressesAsync()).Select(address => CreateCheckoutData(address, Constants.BillingAddress));
                AllCheckoutDataViewModels = new ReadOnlyCollection <CheckoutDataViewModel>(checkoutData.ToList());
                SelectCheckoutDataLabel   = string.Format(CultureInfo.CurrentCulture, _resourceLoader.GetString("SelectCheckoutData"), _resourceLoader.GetString("BillingAddress"));
                break;

            case Constants.PaymentMethod:
                checkoutData = (await _checkoutDataRepository.GetAllPaymentMethodsAsync()).Select(CreateCheckoutData);
                AllCheckoutDataViewModels = new ReadOnlyCollection <CheckoutDataViewModel>(checkoutData.ToList());
                SelectCheckoutDataLabel   = string.Format(CultureInfo.CurrentCulture, _resourceLoader.GetString("SelectCheckoutData"), _resourceLoader.GetString("PaymentMethod"));
                break;
            }

            if (AllCheckoutDataViewModels != null)
            {
                // Select the order's CheckoutData
                SelectedAllCheckoutData = AllCheckoutDataViewModels.FirstOrDefault(c => c.EntityId == SelectedCheckoutData.EntityId);
            }
        }
        private async void Initialize()
        {
            if (await _accountService.VerifyUserAuthenticationAsync() == null)
            {
                return;
            }

            // Populate ShippingAddress collection
            var shippingAddresses = (await _checkoutDataRepository.GetAllShippingAddressesAsync()).Select(address => CreateCheckoutData(address, Constants.ShippingAddress));

            ShippingAddresses = new ReadOnlyCollection <CheckoutDataViewModel>(shippingAddresses.ToList());

            if (ShippingAddresses != null)
            {
                var defaultShippingAddress = await _checkoutDataRepository.GetDefaultShippingAddressAsync();

                var selectedShippingAddress = defaultShippingAddress != null?ShippingAddresses.FirstOrDefault(s => s.EntityId == defaultShippingAddress.Id) : null;

                SetProperty(ref _selectedShippingAddress, selectedShippingAddress, "SelectedShippingAddress");
            }

            // Populate BillingAddress collection
            var billingAddresses = (await _checkoutDataRepository.GetAllBillingAddressesAsync()).Select(address => CreateCheckoutData(address, Constants.BillingAddress));

            BillingAddresses = new ReadOnlyCollection <CheckoutDataViewModel>(billingAddresses.ToList());

            if (BillingAddresses != null)
            {
                var defaultBillingAddress = await _checkoutDataRepository.GetDefaultBillingAddressAsync();

                var selectedBillingAddress = defaultBillingAddress != null?BillingAddresses.FirstOrDefault(s => s.EntityId == defaultBillingAddress.Id) : null;

                SetProperty(ref _selectedBillingAddress, selectedBillingAddress, "SelectedBillingAddress");
            }

            // Populate PaymentMethod collection
            var paymentMethods = (await _checkoutDataRepository.GetAllPaymentMethodsAsync()).Select(CreateCheckoutData);

            PaymentMethods = new ReadOnlyCollection <CheckoutDataViewModel>(paymentMethods.ToList());

            if (PaymentMethods != null)
            {
                var defaultPaymentMethod = await _checkoutDataRepository.GetDefaultPaymentMethodAsync();

                var selectedPaymentMethod = defaultPaymentMethod != null?PaymentMethods.FirstOrDefault(s => s.EntityId == defaultPaymentMethod.Id) : null;

                SetProperty(ref _selectedPaymentMethod, selectedPaymentMethod, "SelectedPaymentMethod");
            }
        }
コード例 #3
0
        public async Task ProcessFormAsync()
        {
            var existingPaymentMethods = await _checkoutDataRepository.GetAllPaymentMethodsAsync();

            var matchingExistingPaymentMethod = FindMatchingPaymentMethod(PaymentMethod, existingPaymentMethods);

            if (matchingExistingPaymentMethod != null)
            {
                PaymentMethod = matchingExistingPaymentMethod;
            }
            else
            {
                await _checkoutDataRepository.SavePaymentMethodAsync(PaymentMethod);
            }
        }