/// <summary> /// Prepare paged tax provider list model /// </summary> /// <param name="searchModel">Tax provider search model</param> /// <returns>Tax provider list model</returns> public virtual TaxProviderListModel PrepareTaxProviderListModel(TaxProviderSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //get tax providers var taxProviders = _taxService.LoadAllTaxProviders(); //prepare grid model var model = new TaxProviderListModel { Data = taxProviders.PaginationByRequestModel(searchModel).Select(provider => { //fill in model values from the entity var taxProviderModel = provider.ToPluginModel <TaxProviderModel>(); //fill in additional values (not existing in the entity) taxProviderModel.ConfigurationUrl = provider.GetConfigurationPageUrl(); taxProviderModel.IsPrimaryTaxProvider = taxProviderModel.SystemName .Equals(_taxSettings.ActiveTaxProviderSystemName, StringComparison.InvariantCultureIgnoreCase); return(taxProviderModel); }), Total = taxProviders.Count }; return(model); }
/// <summary> /// Prepare paged tax provider list model /// </summary> /// <param name="searchModel">Tax provider search model</param> /// <returns>Tax provider list model</returns> public virtual async Task <TaxProviderListModel> PrepareTaxProviderListModelAsync(TaxProviderSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //get tax providers var taxProviders = (await _taxPluginManager.LoadAllPluginsAsync()).ToPagedList(searchModel); //prepare grid model var model = new TaxProviderListModel().PrepareToGrid(searchModel, taxProviders, () => { return(taxProviders.Select(provider => { //fill in model values from the entity var taxProviderModel = provider.ToPluginModel <TaxProviderModel>(); //fill in additional values (not existing in the entity) taxProviderModel.ConfigurationUrl = provider.GetConfigurationPageUrl(); taxProviderModel.IsPrimaryTaxProvider = _taxPluginManager.IsPluginActive(provider); return taxProviderModel; })); }); return(model); }