/// <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); }
public async Task CanLoadShippingRateComputationMethods() { var shippingRateComputationMethods = await _shippingPluginManager.LoadAllPluginsAsync(); shippingRateComputationMethods.Should().NotBeNull(); shippingRateComputationMethods.Any().Should().BeTrue(); }