Beispiel #1
0
        /// <summary>
        /// Prepare paged shipping provider list model
        /// </summary>
        /// <param name="searchModel">Shipping provider search model</param>
        /// <returns>
        /// A task that represents the asynchronous operation
        /// The task result contains the shipping provider list model
        /// </returns>
        public virtual async Task <ShippingProviderListModel> PrepareShippingProviderListModelAsync(ShippingProviderSearchModel searchModel)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            //get shipping providers
            var shippingProviders = (await _shippingPluginManager.LoadAllPluginsAsync()).ToPagedList(searchModel);

            //prepare grid model
            var model = await new ShippingProviderListModel().PrepareToGridAsync(searchModel, shippingProviders, () =>
            {
                return(shippingProviders.SelectAwait(async provider =>
                {
                    //fill in model values from the entity
                    var shippingProviderModel = provider.ToPluginModel <ShippingProviderModel>();

                    //fill in additional values (not existing in the entity)
                    shippingProviderModel.IsActive = _shippingPluginManager.IsPluginActive(provider);
                    shippingProviderModel.ConfigurationUrl = provider.GetConfigurationPageUrl();

                    shippingProviderModel.LogoUrl = await _shippingPluginManager.GetPluginLogoUrlAsync(provider);

                    return shippingProviderModel;
                }));
            });

            return(model);
        }
Beispiel #2
0
        public async Task CanLoadShippingRateComputationMethods()
        {
            var shippingRateComputationMethods = await _shippingPluginManager.LoadAllPluginsAsync();

            shippingRateComputationMethods.Should().NotBeNull();
            shippingRateComputationMethods.Any().Should().BeTrue();
        }