/// <summary> /// Prepare paged shipping provider list model /// </summary> /// <param name="searchModel">Shipping provider search model</param> /// <returns>Shipping provider list model</returns> public virtual ShippingProviderListModel PrepareShippingProviderListModel(ShippingProviderSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //get shipping providers var shippingProviders = _shippingPluginManager.LoadAllPlugins().ToPagedList(searchModel); //prepare grid model var model = new ShippingProviderListModel().PrepareToGrid(searchModel, shippingProviders, () => { return(shippingProviders.Select(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 = _shippingPluginManager.GetPluginLogoUrl(provider); return shippingProviderModel; })); }); return(model); }