From ea31abc3ff4499f9042ee55cf9850e13b3bb7f13 Mon Sep 17 00:00:00 2001 From: Artur984 Date: Tue, 12 Oct 2021 02:41:35 +0400 Subject: [PATCH] fixed admin area customer-company mapping popup irrelevant users --- .../Admin/Factories/CompanyModelFactory.cs | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/Presentation/Nop.Web/Areas/Admin/Factories/CompanyModelFactory.cs b/src/Presentation/Nop.Web/Areas/Admin/Factories/CompanyModelFactory.cs index aa582b1792b..94c1401939a 100644 --- a/src/Presentation/Nop.Web/Areas/Admin/Factories/CompanyModelFactory.cs +++ b/src/Presentation/Nop.Web/Areas/Admin/Factories/CompanyModelFactory.cs @@ -218,20 +218,34 @@ public virtual async Task PrepareAddCustomerToCom //get customers var customers = await _customerService.GetAllCustomersAsync( email: searchModel.SearchCustomerEmail, customerRoleIds: customerRoleIds, - pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize); + pageIndex: 0); - IPagedList filteredCustomers = new PagedList(new List(), searchModel.Page - 1, searchModel.PageSize, customers.TotalCount); + var filteredCustomersCount = 0; + IPagedList filteredCustomers = new PagedList(new List(), 0, int.MaxValue, customers.TotalCount); foreach (var customer in customers) { var companyCustomerMapping = await _companyService.GetCompanyCustomersByCustomerIdAsync(customer.Id); if (companyCustomerMapping.Count == 0) + { filteredCustomers.Add(customer); + filteredCustomersCount++; + } + } + + IPagedList filteredFilteredCustomers = new PagedList(new List(), searchModel.Page - 1, searchModel.PageSize, filteredCustomersCount); + int count = (searchModel.Page - 1) * searchModel.PageSize; + for (var i = count; i < searchModel.Page * searchModel.PageSize; i++) + { + if (i == filteredCustomersCount) + break; + + filteredFilteredCustomers.Add(filteredCustomers[i]); } //prepare grid model - var model = await new AddCustomerToCompanyListModel().PrepareToGridAsync(searchModel, filteredCustomers, () => + var model = await new AddCustomerToCompanyListModel().PrepareToGridAsync(searchModel, filteredFilteredCustomers, () => { - return filteredCustomers.SelectAwait(async customer => + return filteredFilteredCustomers.SelectAwait(async customer => { var customerModel = customer.ToModel();