diff --git a/Company.Domain/ContractingPartyBankAccountsAgg/IContractingPartyBankAccountsRepository.cs b/Company.Domain/ContractingPartyBankAccountsAgg/IContractingPartyBankAccountsRepository.cs index 3b7dd277..30b8c114 100644 --- a/Company.Domain/ContractingPartyBankAccountsAgg/IContractingPartyBankAccountsRepository.cs +++ b/Company.Domain/ContractingPartyBankAccountsAgg/IContractingPartyBankAccountsRepository.cs @@ -8,7 +8,7 @@ namespace Company.Domain.ContractingPartyBankAccountsAgg; public interface IContractingPartyBankAccountsRepository:IRepository { - Task>> GetList(ContractingPartyBankAccountSearchModel searchModel); + Task GetList(ContractingPartyBankAccountSearchModel searchModel); Task>> ContractingPartyOrAccountHolderNameSelectList(string search, string selected); Task>> IBanSelectList(string search, string selected); diff --git a/CompanyManagment.App.Contracts/ContractingPartyBankAccounts/GetContractingPartyBankAccountViewModel.cs b/CompanyManagment.App.Contracts/ContractingPartyBankAccounts/GetContractingPartyBankAccountViewModel.cs index 724ce93f..96f4cc03 100644 --- a/CompanyManagment.App.Contracts/ContractingPartyBankAccounts/GetContractingPartyBankAccountViewModel.cs +++ b/CompanyManagment.App.Contracts/ContractingPartyBankAccounts/GetContractingPartyBankAccountViewModel.cs @@ -6,6 +6,16 @@ namespace CompanyManagment.App.Contracts.ContractingPartyBankAccounts; /// لیست اطلاعات بانکی طرف حساب /// public class GetContractingPartyBankAccountViewModel +{ + /// + /// تعداد + /// + public int Count { get; set; } + public List List { get; set; } + +} + +public class ContractingPartyBankAccountsGroupedViewModel { /// /// لیست حساب های بانکی @@ -27,6 +37,7 @@ public class GetContractingPartyBankAccountViewModel /// public string WorkshopName { get; set; } } + /// /// حساب بانکی طرف حساب /// diff --git a/CompanyManagment.App.Contracts/ContractingPartyBankAccounts/IContractingPartyBankAccountsApplication.cs b/CompanyManagment.App.Contracts/ContractingPartyBankAccounts/IContractingPartyBankAccountsApplication.cs index aa5b7415..ce1ff286 100644 --- a/CompanyManagment.App.Contracts/ContractingPartyBankAccounts/IContractingPartyBankAccountsApplication.cs +++ b/CompanyManagment.App.Contracts/ContractingPartyBankAccounts/IContractingPartyBankAccountsApplication.cs @@ -24,8 +24,7 @@ public interface IContractingPartyBankAccountsApplication /// /// /// - Task>> GetList( - ContractingPartyBankAccountSearchModel searchModel); + Task GetList(ContractingPartyBankAccountSearchModel searchModel); /// /// سلکت لیست جستجو برای نام طرف حساب / صاحب حساب diff --git a/CompanyManagment.Application/ContractingPartyBankAccountsApplication.cs b/CompanyManagment.Application/ContractingPartyBankAccountsApplication.cs index 0d5eccb3..5bcb04be 100644 --- a/CompanyManagment.Application/ContractingPartyBankAccountsApplication.cs +++ b/CompanyManagment.Application/ContractingPartyBankAccountsApplication.cs @@ -50,7 +50,7 @@ public class ContractingPartyBankAccountsApplication:IContractingPartyBankAccoun } - public async Task>> GetList( + public async Task GetList( ContractingPartyBankAccountSearchModel searchModel) { return await _contractingPartyBankAccountsRepository.GetList(searchModel); diff --git a/CompanyManagment.EFCore/Repository/ContractingPartyBankAccountsRepository.cs b/CompanyManagment.EFCore/Repository/ContractingPartyBankAccountsRepository.cs index 3980378c..5fbeb7ba 100644 --- a/CompanyManagment.EFCore/Repository/ContractingPartyBankAccountsRepository.cs +++ b/CompanyManagment.EFCore/Repository/ContractingPartyBankAccountsRepository.cs @@ -20,7 +20,7 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase>> GetList( + public async Task GetList( ContractingPartyBankAccountSearchModel searchModel) { var query = _context.ContractingPartyBankAccounts.AsQueryable(); @@ -38,38 +38,41 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase new { x.ContractingPartyId, x.ContractingParty.FName, x.ContractingParty.LName }) - .Select(g => new GetContractingPartyBankAccountViewModel() - { - ContractingPartyId = g.Key.ContractingPartyId, - ContractingPartyName = g.Key.FName + " " + g.Key.LName, - BankAccountsItems = g.Select(x => new ContractingPartyBankAccountsItemViewModel + var result = new GetContractingPartyBankAccountViewModel() + { + Count = count, + List = await query + .GroupBy(x => new { x.ContractingPartyId, x.ContractingParty.FName, x.ContractingParty.LName }) + .Select(g => new ContractingPartyBankAccountsGroupedViewModel() { - AccountHolderName = x.AccountHolderName, - AccountNumber = x.AccountNumber, - CardNumber = x.CardNumber, - IBan = x.IBan, - }).ToList() - }); + ContractingPartyId = g.Key.ContractingPartyId, + ContractingPartyName = g.Key.FName + " " + g.Key.LName, + BankAccountsItems = g.Select(x => new ContractingPartyBankAccountsItemViewModel + { + AccountHolderName = x.AccountHolderName, + AccountNumber = x.AccountNumber, + CardNumber = x.CardNumber, + IBan = x.IBan, + }).ToList() + }).Skip(searchModel.PageIndex) + .Take(30).ToListAsync() + }; - var result = await grouped - .Skip(searchModel.PageIndex) - .Take(30) - .ToListAsync(); - - return new OperationResult>().Succcedded(result); + return result; } public async Task>> ContractingPartyOrAccountHolderNameSelectList(string search, string selected) { var accountHolderQuery = _context.ContractingPartyBankAccounts.Select(x => x.AccountHolderName); - var contractingPartyNameQuery = _context.ContractingPartyBankAccounts.Select(x=>x.ContractingParty.FName + " " + x.ContractingParty.LName); + var contractingPartyNameQuery = + _context.ContractingPartyBankAccounts.Select(x => + x.ContractingParty.FName + " " + x.ContractingParty.LName); if (!string.IsNullOrWhiteSpace(search)) { - accountHolderQuery = accountHolderQuery.Where(x=>x.Contains(search)); + accountHolderQuery = accountHolderQuery.Where(x => x.Contains(search)); contractingPartyNameQuery = contractingPartyNameQuery.Where(x => x.Contains(search)); } @@ -79,13 +82,13 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase>().Succcedded(result.Distinct().ToList()); } public async Task>> IBanSelectList(string search, string selected) { - var iBanQuery = _context.ContractingPartyBankAccounts.Select(x=>x.IBan); + var iBanQuery = _context.ContractingPartyBankAccounts.Select(x => x.IBan); if (!string.IsNullOrWhiteSpace(search)) { iBanQuery = iBanQuery.Where(x => x.Contains(search)); @@ -97,13 +100,13 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase>().Succcedded(result.Distinct().ToList()); } public async Task>> CardNumberSelectList(string search, string selected) { - var cardNumberQuery = _context.ContractingPartyBankAccounts.Select(x=>x.CardNumber); + var cardNumberQuery = _context.ContractingPartyBankAccounts.Select(x => x.CardNumber); if (!string.IsNullOrWhiteSpace(search)) { cardNumberQuery = cardNumberQuery.Where(x => x.Contains(search)); @@ -115,13 +118,13 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase>().Succcedded(result.Distinct().ToList()); } public async Task>> AccountNumberSelectList(string search, string selected) { - var accountNumberQuery = _context.ContractingPartyBankAccounts.Select(x=>x.IBan); + var accountNumberQuery = _context.ContractingPartyBankAccounts.Select(x => x.IBan); if (!string.IsNullOrWhiteSpace(search)) { accountNumberQuery = accountNumberQuery.Where(x => x.Contains(search)); @@ -133,7 +136,7 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase>().Succcedded(result.Distinct().ToList()); } } \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Controllers/ContractingPartyBankAccountController.cs b/ServiceHost/Areas/Admin/Controllers/ContractingPartyBankAccountController.cs index 524748bf..03cad696 100644 --- a/ServiceHost/Areas/Admin/Controllers/ContractingPartyBankAccountController.cs +++ b/ServiceHost/Areas/Admin/Controllers/ContractingPartyBankAccountController.cs @@ -24,7 +24,7 @@ public class ContractingPartyBankAccountController : AdminBaseController /// سرچ /// [HttpGet] - public async Task>> GetList(ContractingPartyBankAccountSearchModel searchModel) + public async Task GetList(ContractingPartyBankAccountSearchModel searchModel) { var res =await _contractingPartyBankAccountsApplication.GetList(searchModel); return res;