refactor: replace OperationResult with raw data for select list methods in repositories and controllers

This commit is contained in:
MahanCh
2025-08-04 12:10:17 +03:30
parent 44763da729
commit ebc377603a
10 changed files with 221 additions and 91 deletions

View File

@@ -8,10 +8,12 @@ namespace Company.Domain.ContractingPartyBankAccountsAgg;
public interface IContractingPartyBankAccountsRepository:IRepository<long,ContractingPartyBankAccount>
{
Task<OperationResult<List<GetContractingPartyBankAccountViewModel>>> GetList(ContractingPartyBankAccountSearchModel searchModel);
Task<OperationResult<List<string>>> ContractingPartyOrAccountHolderNameSelectList(string search, string selected);
Task<OperationResult<List<string>>> IBanSelectList(string search, string selected);
Task<List<GetContractingPartyBankAccountViewModel>> GetList(ContractingPartyBankAccountSearchModel searchModel);
Task<List<string>> ContractingPartyOrAccountHolderNameSelectList(string search, string selected);
Task<List<string>> IBanSelectList(string search, string selected);
Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected);
Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected);
Task<List<string>> CardNumberSelectList(string search, string selected);
Task<List<string>> AccountNumberSelectList(string search, string selected);
Task<List<string>> GetAccountHolderNameSelectList(string search, string selected);
Task<List<string>> ContractingPartyNamesSelectList(string search, string selected);
}

View File

@@ -10,9 +10,10 @@ public interface IPaymentInstrumentRepository:IRepository<long,PaymentInstrument
{
Task<GetPaymentInstrumentListViewModel> GetList(PaymentInstrumentSearchModel searchModel);
Task<List<PosTerminalSelectListViewModel>> GetPosTerminalSelectList(string search);
Task<OperationResult<List<string>>> PosTerminalIdSelectList(string search, string selected);
Task<OperationResult<List<string>>> IbanSelectList(string search, string selected);
Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected);
Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected);
Task<List<string>> PosTerminalIdSelectList(string search, string selected);
Task<List<string>> IbanSelectList(string search, string selected);
Task<List<string>> AccountNumberSelectList(string search, string selected);
Task<List<string>> CardNumberSelectList(string search, string selected);
Task<List<string>> AccountHolderNameSelectList(string search, string selected);
}

View File

@@ -24,8 +24,7 @@ public interface IContractingPartyBankAccountsApplication
/// </summary>
/// <param name="searchModel"></param>
/// <returns></returns>
Task<OperationResult<List<GetContractingPartyBankAccountViewModel>>> GetList(
ContractingPartyBankAccountSearchModel searchModel);
Task<List<GetContractingPartyBankAccountViewModel>> GetList(ContractingPartyBankAccountSearchModel searchModel);
/// <summary>
/// سلکت لیست جستجو برای نام طرف حساب / صاحب حساب
@@ -33,7 +32,7 @@ public interface IContractingPartyBankAccountsApplication
/// <param name="search">نام جستجو</param>
/// <param name="selected">نام سلکت شده</param>
/// <returns></returns>
Task<OperationResult<List<string>>> ContractingPartyOrAccountHolderNameSelectList(string search, string selected);
Task<List<string>> ContractingPartyOrAccountHolderNameSelectList(string search, string selected);
/// <summary>
/// سلکت لیست شماره کارت
@@ -41,7 +40,7 @@ public interface IContractingPartyBankAccountsApplication
/// <param name="search">نام جستجو</param>
/// <param name="selected">نام سلکت شده</param>
/// <returns></returns>
Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected);
Task<List<string>> CardNumberSelectList(string search, string selected);
/// <summary>
/// سلکت لیست شماره شبا
@@ -49,7 +48,7 @@ public interface IContractingPartyBankAccountsApplication
/// <param name="search">نام جستجو</param>
/// <param name="selected">نام سلکت شده</param>
/// <returns></returns>
Task<OperationResult<List<string>>> IBanSelectList(string search, string selected);
Task<List<string>> IBanSelectList(string search, string selected);
/// <summary>
/// سلکت لیست شماره حساب
@@ -57,6 +56,22 @@ public interface IContractingPartyBankAccountsApplication
/// <param name="search">نام جستجو</param>
/// <param name="selected">نام سلکت شده</param>
/// <returns></returns>
Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected);
Task<List<string>> AccountNumberSelectList(string search, string selected);
/// <summary>
/// سلکت لیست نام صاحبان حساب
/// </summary>
/// <param name="search">نام جستجو</param>
/// <param name="selected">نام سلکت شده</param>
/// <returns></returns>
Task<List<string>> GetAccountHolderNameSelectList(string search, string selected);
/// <summary>
/// سلکت لیست نام طرف حساب‌ها
/// </summary>
/// <param name="search">نام جستجو</param>
/// <param name="selected">نام سلکت شده</param>
/// <returns></returns>
Task<List<string>> ContractingPartyNamesSelectList(string search, string selected);
}

View File

@@ -53,8 +53,9 @@ public interface IPaymentInstrumentApplication
Task<List<PaymentInstrumentGroupsViewModel>> GetGroup();
Task<OperationResult<List<string>>> PosTerminalIdSelectList(string search, string selected);
Task<OperationResult<List<string>>> IbanSelectList(string search, string selected);
Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected);
Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected);
Task<List<string>> PosTerminalIdSelectList(string search, string selected);
Task<List<string>> IbanSelectList(string search, string selected);
Task<List<string>> AccountNumberSelectList(string search, string selected);
Task<List<string>> CardNumberSelectList(string search, string selected);
Task<List<string>> AccountHolderNameSelectList(string search, string selected);
}

View File

@@ -50,30 +50,40 @@ public class ContractingPartyBankAccountsApplication:IContractingPartyBankAccoun
}
public async Task<OperationResult<List<GetContractingPartyBankAccountViewModel>>> GetList(
public async Task<List<GetContractingPartyBankAccountViewModel>> GetList(
ContractingPartyBankAccountSearchModel searchModel)
{
return await _contractingPartyBankAccountsRepository.GetList(searchModel);
}
public async Task<OperationResult<List<string>>> ContractingPartyOrAccountHolderNameSelectList(string search,
public async Task<List<string>> ContractingPartyOrAccountHolderNameSelectList(string search,
string selected)
{
return await _contractingPartyBankAccountsRepository.ContractingPartyOrAccountHolderNameSelectList(search, selected);
}
public async Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected)
public async Task<List<string>> CardNumberSelectList(string search, string selected)
{
return await _contractingPartyBankAccountsRepository.CardNumberSelectList(search, selected);
}
public async Task<OperationResult<List<string>>> IBanSelectList(string search, string selected)
public async Task<List<string>> IBanSelectList(string search, string selected)
{
return await _contractingPartyBankAccountsRepository.IBanSelectList(search, selected);
}
public async Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected)
public async Task<List<string>> AccountNumberSelectList(string search, string selected)
{
return await _contractingPartyBankAccountsRepository.AccountNumberSelectList(search, selected);
}
}
public async Task<List<string>> GetAccountHolderNameSelectList(string search, string selected)
{
return await _contractingPartyBankAccountsRepository.GetAccountHolderNameSelectList(search, selected);
}
public async Task<List<string>> ContractingPartyNamesSelectList(string search, string selected)
{
return await _contractingPartyBankAccountsRepository.ContractingPartyNamesSelectList(search, selected);
}
}

View File

@@ -126,23 +126,29 @@ public class PaymentInstrumentApplication:IPaymentInstrumentApplication
return await _paymentInstrumentRepository.GetPosTerminalSelectList(search);
}
public async Task<OperationResult<List<string>>> PosTerminalIdSelectList(string search, string selected)
public async Task<List<string>> PosTerminalIdSelectList(string search, string selected)
{
return await _paymentInstrumentRepository.PosTerminalIdSelectList(search, selected);
}
public async Task<OperationResult<List<string>>> IbanSelectList(string search, string selected)
public async Task<List<string>> IbanSelectList(string search, string selected)
{
return await _paymentInstrumentRepository.IbanSelectList(search, selected);
}
public async Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected)
public async Task<List<string>> AccountNumberSelectList(string search, string selected)
{
return await _paymentInstrumentRepository.AccountNumberSelectList(search, selected);
}
public async Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected)
public async Task<List<string>> CardNumberSelectList(string search, string selected)
{
return await _paymentInstrumentRepository.CardNumberSelectList(search, selected);
}
}
public async Task<List<string>> AccountHolderNameSelectList(string search, string selected)
{
return await _paymentInstrumentRepository.AccountHolderNameSelectList(search, selected);
}
}

View File

@@ -20,7 +20,7 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
_context = context;
}
public async Task<OperationResult<List<GetContractingPartyBankAccountViewModel>>> GetList(
public async Task<List<GetContractingPartyBankAccountViewModel>> GetList(
ContractingPartyBankAccountSearchModel searchModel)
{
var query = _context.ContractingPartyBankAccounts.AsQueryable();
@@ -59,10 +59,10 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
.Take(30)
.ToListAsync();
return new OperationResult<List<GetContractingPartyBankAccountViewModel>>().Succcedded(result);
return result;
}
public async Task<OperationResult<List<string>>> ContractingPartyOrAccountHolderNameSelectList(string search,
public async Task<List<string>> ContractingPartyOrAccountHolderNameSelectList(string search,
string selected)
{
var accountHolderQuery = _context.ContractingPartyBankAccounts.Select(x => x.AccountHolderName);
@@ -80,10 +80,10 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
result.Add(selected);
}
return new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
return result.Distinct().ToList();
}
public async Task<OperationResult<List<string>>> IBanSelectList(string search, string selected)
public async Task<List<string>> IBanSelectList(string search, string selected)
{
var iBanQuery = _context.ContractingPartyBankAccounts.Where(x=>x.IBan != null).Select(x=>x.IBan);
if (!string.IsNullOrWhiteSpace(search))
@@ -98,10 +98,10 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
result.Add(selected);
}
return new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
return result.Distinct().ToList();
}
public async Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected)
public async Task<List<string>> CardNumberSelectList(string search, string selected)
{
var cardNumberQuery = _context.ContractingPartyBankAccounts.Where(x=>x.CardNumber != null).Select(x=>x.CardNumber);
if (!string.IsNullOrWhiteSpace(search))
@@ -116,10 +116,10 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
result.Add(selected);
}
return new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
return result.Distinct().ToList();
}
public async Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected)
public async Task<List<string>> AccountNumberSelectList(string search, string selected)
{
var accountNumberQuery = _context.ContractingPartyBankAccounts.Where(x=>x.AccountNumber != null).Select(x=>x.AccountNumber);
if (!string.IsNullOrWhiteSpace(search))
@@ -134,6 +134,42 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
result.Add(selected);
}
return new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
return result.Distinct().ToList();
}
public async Task<List<string>> GetAccountHolderNameSelectList(string search, string selected)
{
var accountHolderQuery = _context.ContractingPartyBankAccounts.Select(x => x.AccountHolderName);
if (!string.IsNullOrWhiteSpace(search))
{
accountHolderQuery = accountHolderQuery.Where(x => x.Contains(search));
}
var result = await accountHolderQuery.Take(50).ToListAsync();
if (!string.IsNullOrWhiteSpace(selected))
{
result.Add(selected);
}
return result.Distinct().ToList();
}
public async Task<List<string>> ContractingPartyNamesSelectList(string search, string selected)
{
var query = _context.ContractingPartyBankAccounts
.Select(x => x.ContractingParty.FName + " " + x.ContractingParty.LName);
if (!string.IsNullOrWhiteSpace(search))
{
query = query.Where(x => x.Contains(search));
}
var result = await query.Take(50).ToListAsync();
if (!string.IsNullOrWhiteSpace(selected))
{
result.Add(selected);
}
return result.Distinct().ToList();
}
}

View File

@@ -139,7 +139,7 @@ public class PaymentInstrumentRepository : RepositoryBase<long, PaymentInstrumen
return queryable.Take(50).ToListAsync();
}
public async Task<OperationResult<List<string>>> PosTerminalIdSelectList(string search, string selected)
public async Task<List<string>> PosTerminalIdSelectList(string search, string selected)
{
var query = _companyContext.PaymentInstruments.Where(x=>x.PosTerminalId != null).Select(x => x.PosTerminalId);
if (!string.IsNullOrWhiteSpace(search))
@@ -154,10 +154,10 @@ public class PaymentInstrumentRepository : RepositoryBase<long, PaymentInstrumen
result.Add(selected);
}
return new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
return result.Distinct().ToList();
}
public async Task<OperationResult<List<string>>> IbanSelectList(string search, string selected)
public async Task<List<string>> IbanSelectList(string search, string selected)
{
var query = _companyContext.PaymentInstruments.Where(x=>x.IBan != null).Select(x => x.IBan);
if (!string.IsNullOrWhiteSpace(search))
@@ -172,10 +172,10 @@ public class PaymentInstrumentRepository : RepositoryBase<long, PaymentInstrumen
result.Add(selected);
}
return new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
return result.Distinct().ToList();
}
public async Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected)
public async Task<List<string>> AccountNumberSelectList(string search, string selected)
{
var query = _companyContext.PaymentInstruments.Where(x=>x.AccountNumber != null).Select(x => x.AccountNumber);
if (!string.IsNullOrWhiteSpace(search))
@@ -190,10 +190,31 @@ public class PaymentInstrumentRepository : RepositoryBase<long, PaymentInstrumen
result.Add(selected);
}
return new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
return result.Distinct().ToList();
}
public async Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected)
public async Task<List<string>> AccountHolderNameSelectList(string search, string selected)
{
var accountHolderQuery = _companyContext.PaymentInstruments.Where(x => x.AccountHolderName != null).Select(x => x.AccountHolderName);
if (!string.IsNullOrWhiteSpace(search))
{
accountHolderQuery = accountHolderQuery.Where(x => x.Contains(search));
}
var result = await accountHolderQuery.Take(50).ToListAsync();
if (!string.IsNullOrWhiteSpace(selected))
{
result.Add(selected);
}
return result.Distinct().ToList();
}
public async Task<List<string>> CardNumberSelectList(string search, string selected)
{
var query = _companyContext.PaymentInstruments.Where(x=>x.CardNumber != null).Select(x => x.CardNumber);
if (!string.IsNullOrWhiteSpace(search))
@@ -208,6 +229,6 @@ public class PaymentInstrumentRepository : RepositoryBase<long, PaymentInstrumen
result.Add(selected);
}
return new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
return result.Distinct().ToList();
}
}

View File

@@ -18,13 +18,13 @@ public class ContractingPartyBankAccountController : AdminBaseController
_contractingPartyBankAccountsApplication = contractingPartyBankAccountsApplication;
}
/// <summary>
/// <summary>
/// لیست اطلاعات بانک اطلاعات بانکی طرف حساب
/// </summary>
/// <param name="searchModel">سرچ</param>
/// <returns></returns>
[HttpGet]
public async Task<OperationResult<List<GetContractingPartyBankAccountViewModel>>> GetList(ContractingPartyBankAccountSearchModel searchModel)
public async Task<List<GetContractingPartyBankAccountViewModel>> GetList(ContractingPartyBankAccountSearchModel searchModel)
{
var res =await _contractingPartyBankAccountsApplication.GetList(searchModel);
return res;

View File

@@ -102,9 +102,11 @@ public class PaymentInstrumentController:AdminBaseController
/// <param name="selected">مقدار انتخاب شده</param>
/// <returns>لیست شناسه‌های دستگاه پوز</returns>
[HttpGet("pos-terminal-id-select")]
public async Task<ActionResult<OperationResult<List<string>>>> GetPosTerminalIdSelectList(string search, string selected)
public async Task<ActionResult<List<string>>> GetPosTerminalIdSelectList(string search, string selected)
{
return await _paymentInstrumentApplication.PosTerminalIdSelectList(search, selected);
return await _paymentInstrumentApplication.PosTerminalIdSelectList(search, selected);
}
/// <summary>
@@ -114,24 +116,26 @@ public class PaymentInstrumentController:AdminBaseController
/// <param name="selected">مقدار انتخاب شده</param>
/// <returns>لیست شماره‌های شبا</returns>
[HttpGet("iban-select")]
public async Task<ActionResult<OperationResult<List<string>>>> GetIbanSelectList(string search, string selected)
public async Task<ActionResult<List<string>>> GetIbanSelectList(string search, string selected)
{
var paymentIban = await _paymentInstrumentApplication.IbanSelectList(search, selected);
var contractingIban = await _contractingPartyBankAccountsApplication.IBanSelectList(search, selected);
var paymentIban = await _paymentInstrumentApplication.IbanSelectList(search, selected);
var contractingIban = await _contractingPartyBankAccountsApplication.IBanSelectList(search, selected);
var combinedList = new List<string>();
var combinedList = new List<string>();
if (paymentIban.IsSuccedded)
{
combinedList.AddRange(paymentIban.Data??[]);
}
if (paymentIban != null)
{
combinedList.AddRange(paymentIban);
}
if (contractingIban.IsSuccedded)
{
combinedList.AddRange(contractingIban.Data??[]);
}
if (contractingIban != null)
{
combinedList.AddRange(contractingIban);
}
return new OperationResult<List<string>>().Succcedded(combinedList.Distinct().ToList());
return combinedList.Distinct().ToList();
}
/// <summary>
@@ -141,24 +145,24 @@ public class PaymentInstrumentController:AdminBaseController
/// <param name="selected">مقدار انتخاب شده</param>
/// <returns>لیست شماره‌های حساب</returns>
[HttpGet("account-number-select")]
public async Task<ActionResult<OperationResult<List<string>>>> GetAccountNumberSelectList(string search, string selected)
public async Task<ActionResult<List<string>>> GetAccountNumberSelectList(string search, string selected)
{
var paymentAccountNumbers = await _paymentInstrumentApplication.AccountNumberSelectList(search, selected);
var contractingAccountNumbers = await _contractingPartyBankAccountsApplication.AccountNumberSelectList(search, selected);
var paymentAccountNumbers = await _paymentInstrumentApplication.AccountNumberSelectList(search, selected);
var contractingAccountNumbers = await _contractingPartyBankAccountsApplication.AccountNumberSelectList(search, selected);
var combinedList = new List<string>();
var combinedList = new List<string>();
if (paymentAccountNumbers.IsSuccedded)
{
combinedList.AddRange(paymentAccountNumbers.Data??[]);
}
if (paymentAccountNumbers != null)
{
combinedList.AddRange(paymentAccountNumbers);
}
if (contractingAccountNumbers.IsSuccedded)
{
combinedList.AddRange(contractingAccountNumbers.Data??[]);
}
if (contractingAccountNumbers != null)
{
combinedList.AddRange(contractingAccountNumbers);
}
return new OperationResult<List<string>>().Succcedded(combinedList.Distinct().ToList());
return combinedList.Distinct().ToList();
}
/// <summary>
@@ -168,23 +172,57 @@ public class PaymentInstrumentController:AdminBaseController
/// <param name="selected">مقدار انتخاب شده</param>
/// <returns>لیست شماره‌های کارت</returns>
[HttpGet("card-number-select")]
public async Task<ActionResult<OperationResult<List<string>>>> GetCardNumberSelectList(string search, string selected)
public async Task<ActionResult<List<string>>> GetCardNumberSelectList(string search, string selected)
{
var paymentCardNumbers = await _paymentInstrumentApplication.CardNumberSelectList(search, selected);
var contractingCardNumbers = await _contractingPartyBankAccountsApplication.CardNumberSelectList(search, selected);
var combinedList = new List<string>();
var paymentCardNumbers = await _paymentInstrumentApplication.CardNumberSelectList(search, selected);
var contractingCardNumbers = await _contractingPartyBankAccountsApplication.CardNumberSelectList(search, selected);
if (paymentCardNumbers.IsSuccedded)
{
combinedList.AddRange(paymentCardNumbers.Data??[]);
}
var combinedList = new List<string>();
if (contractingCardNumbers.IsSuccedded)
{
combinedList.AddRange(contractingCardNumbers.Data??[]);
}
if (paymentCardNumbers != null)
{
combinedList.AddRange(paymentCardNumbers);
}
if (contractingCardNumbers != null)
{
combinedList.AddRange(contractingCardNumbers);
}
return combinedList.Distinct().ToList();
}
/// <summary>
/// دریافت لیست نام صاحبان حساب به صورت رشته
/// </summary>
/// <param name="search">عبارت جستجو</param>
/// <param name="selected">مقدار انتخاب شده</param>
/// <returns>لیست نام صاحبان حساب</returns>
[HttpGet("account-holder-contracting-party-name-select")]
public async Task<ActionResult<List<string>>> GetAccountHolderNameAndContractingPartyNameSelectList(string search, string selected)
{
var paymentAccountHolders = await _paymentInstrumentApplication.AccountHolderNameSelectList(search, selected);
var contractingAccountHolders = await _contractingPartyBankAccountsApplication.GetAccountHolderNameSelectList(search, selected);
var contractingNames = await _contractingPartyBankAccountsApplication.ContractingPartyNamesSelectList(search, selected);
var combinedList = new List<string>();
if (paymentAccountHolders != null)
{
combinedList.AddRange(paymentAccountHolders);
}
if (contractingAccountHolders != null)
{
combinedList.AddRange(contractingAccountHolders);
}
if (contractingNames != null)
combinedList.AddRange(contractingNames);
return combinedList.Distinct().ToList();
return new OperationResult<List<string>>().Succcedded(combinedList.Distinct().ToList());
}
}