/// <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 = _shippingService.LoadAllShippingRateComputationMethods(); //prepare grid model var model = new ShippingProviderListModel { Data = shippingProviders.PaginationByRequestModel(searchModel).Select(provider => { //fill in model values from the entity var shippingProviderModel = provider.ToModel(); //fill in additional values (not existing in the entity) shippingProviderModel.IsActive = provider.IsShippingRateComputationMethodActive(_shippingSettings); shippingProviderModel.ConfigurationUrl = provider.GetConfigurationPageUrl(); shippingProviderModel.LogoUrl = provider.PluginDescriptor.GetLogoUrl(_webHelper); return(shippingProviderModel); }), Total = shippingProviders.Count }; return(model); }
/// <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); }