Merge branch 'Feature/PaymentInstrument/Init' into Main
# Conflicts: # CompanyManagment.EFCore/Repository/ContractingPartyBankAccountsRepository.cs
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using _0_Framework.Domain;
|
||||
using CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
@@ -7,4 +9,10 @@ namespace Company.Domain.PaymentInstrumentAgg;
|
||||
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);
|
||||
|
||||
}
|
||||
@@ -21,7 +21,7 @@ public class PaymentInstrument:EntityBase
|
||||
PosTerminalId = posTerminalId;
|
||||
Description = description;
|
||||
PaymentInstrumentGroupId = paymentInstrumentGroupId;
|
||||
Type = PaymentInstrumentType.BankAccount;
|
||||
Type = PaymentInstrumentType.Pos;
|
||||
}
|
||||
|
||||
public static PaymentInstrument CreatePosType(string posTerminalId, string description, long paymentInstrumentGroupId)
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
using _0_Framework.Application;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
public class AccountNumberSelectListViewModel : SelectListViewModel;
|
||||
@@ -0,0 +1,5 @@
|
||||
using _0_Framework.Application;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
public class CardNumberSelectListViewModel:SelectListViewModel;
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
@@ -51,4 +52,9 @@ public interface IPaymentInstrumentApplication
|
||||
Task<OperationResult> DeleteGroup(long id);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
using _0_Framework.Application;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
public class IbanSelectListViewModel:SelectListViewModel;
|
||||
@@ -0,0 +1,7 @@
|
||||
using _0_Framework.Application;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
public class PosTerminalSelectListViewModel:SelectListViewModel
|
||||
{
|
||||
}
|
||||
@@ -120,4 +120,29 @@ public class PaymentInstrumentApplication:IPaymentInstrumentApplication
|
||||
{
|
||||
return await _paymentInstrumentGroupRepository.GetList();
|
||||
}
|
||||
|
||||
public async Task<List<PosTerminalSelectListViewModel>> GetPosTerminalSelectList(string search)
|
||||
{
|
||||
return await _paymentInstrumentRepository.GetPosTerminalSelectList(search);
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> PosTerminalIdSelectList(string search, string selected)
|
||||
{
|
||||
return await _paymentInstrumentRepository.PosTerminalIdSelectList(search, selected);
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> IbanSelectList(string search, string selected)
|
||||
{
|
||||
return await _paymentInstrumentRepository.IbanSelectList(search, selected);
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected)
|
||||
{
|
||||
return await _paymentInstrumentRepository.AccountNumberSelectList(search, selected);
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected)
|
||||
{
|
||||
return await _paymentInstrumentRepository.CardNumberSelectList(search, selected);
|
||||
}
|
||||
}
|
||||
@@ -88,7 +88,7 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
|
||||
|
||||
public async Task<OperationResult<List<string>>> IBanSelectList(string search, string selected)
|
||||
{
|
||||
var iBanQuery = _context.ContractingPartyBankAccounts.Select(x => x.IBan);
|
||||
var iBanQuery = _context.ContractingPartyBankAccounts.Where(x=>x.IBan != null).Select(x=>x.IBan);
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
iBanQuery = iBanQuery.Where(x => x.Contains(search));
|
||||
@@ -106,7 +106,7 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
|
||||
|
||||
public async Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected)
|
||||
{
|
||||
var cardNumberQuery = _context.ContractingPartyBankAccounts.Select(x => x.CardNumber);
|
||||
var cardNumberQuery = _context.ContractingPartyBankAccounts.Where(x=>x.CardNumber != null).Select(x=>x.CardNumber);
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
cardNumberQuery = cardNumberQuery.Where(x => x.Contains(search));
|
||||
@@ -124,7 +124,7 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
|
||||
|
||||
public async Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected)
|
||||
{
|
||||
var accountNumberQuery = _context.ContractingPartyBankAccounts.Select(x => x.IBan);
|
||||
var accountNumberQuery = _context.ContractingPartyBankAccounts.Where(x=>x.AccountNumber != null).Select(x=>x.AccountNumber);
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
accountNumberQuery = accountNumberQuery.Where(x => x.Contains(search));
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using _0_Framework.InfraStructure;
|
||||
using Company.Domain.PaymentInstrumentAgg;
|
||||
using CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
@@ -76,4 +78,136 @@ public class PaymentInstrumentRepository : RepositoryBase<long, PaymentInstrumen
|
||||
};
|
||||
return list;
|
||||
}
|
||||
|
||||
public Task<List<PosTerminalSelectListViewModel>> GetPosTerminalSelectList(string search)
|
||||
{
|
||||
var queryable = _companyContext.PaymentInstruments.Select(x=>new PosTerminalSelectListViewModel
|
||||
{
|
||||
Id = x.id,
|
||||
Text = x.PosTerminalId
|
||||
});
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
queryable = queryable.Where(x => x.Text.Contains(search));
|
||||
}
|
||||
return queryable.Take(50).ToListAsync();
|
||||
}
|
||||
|
||||
public Task<List<IbanSelectListViewModel>> GetIbanSelectList(string search)
|
||||
{
|
||||
var queryable = _companyContext.PaymentInstruments.Select(x => new IbanSelectListViewModel
|
||||
{
|
||||
Id = x.id,
|
||||
Text = x.IBan
|
||||
});
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
queryable = queryable.Where(x => x.Text.Contains(search));
|
||||
}
|
||||
return queryable.Take(50).ToListAsync();
|
||||
}
|
||||
|
||||
public Task<List<AccountNumberSelectListViewModel>> GetAccountNumberSelectList(string search)
|
||||
{
|
||||
var queryable = _companyContext.PaymentInstruments.Select(x => new AccountNumberSelectListViewModel
|
||||
{
|
||||
Id = x.id,
|
||||
Text = x.AccountNumber
|
||||
});
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
queryable = queryable.Where(x => x.Text.Contains(search));
|
||||
}
|
||||
return queryable.Take(50).ToListAsync();
|
||||
}
|
||||
|
||||
public Task<List<CardNumberSelectListViewModel>> GetCardNumberSelectList(string search)
|
||||
{
|
||||
var queryable = _companyContext.PaymentInstruments.Select(x => new CardNumberSelectListViewModel
|
||||
{
|
||||
Id = x.id,
|
||||
Text = x.CardNumber
|
||||
});
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
queryable = queryable.Where(x => x.Text.Contains(search));
|
||||
}
|
||||
return queryable.Take(50).ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> PosTerminalIdSelectList(string search, string selected)
|
||||
{
|
||||
var query = _companyContext.PaymentInstruments.Where(x=>x.PosTerminalId != null).Select(x => x.PosTerminalId);
|
||||
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 new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> IbanSelectList(string search, string selected)
|
||||
{
|
||||
var query = _companyContext.PaymentInstruments.Where(x=>x.IBan != null).Select(x => x.IBan);
|
||||
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 new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected)
|
||||
{
|
||||
var query = _companyContext.PaymentInstruments.Where(x=>x.AccountNumber != null).Select(x => x.AccountNumber);
|
||||
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 new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected)
|
||||
{
|
||||
var query = _companyContext.PaymentInstruments.Where(x=>x.CardNumber != null).Select(x => x.CardNumber);
|
||||
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 new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using _0_Framework.Application;
|
||||
using CompanyManagment.App.Contracts.ContractingPartyBankAccounts;
|
||||
using CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using ServiceHost.BaseControllers;
|
||||
@@ -8,10 +9,12 @@ namespace ServiceHost.Areas.Admin.Controllers;
|
||||
public class PaymentInstrumentController:AdminBaseController
|
||||
{
|
||||
private readonly IPaymentInstrumentApplication _paymentInstrumentApplication;
|
||||
private readonly IContractingPartyBankAccountsApplication _contractingPartyBankAccountsApplication;
|
||||
|
||||
public PaymentInstrumentController(IPaymentInstrumentApplication paymentInstrumentApplication)
|
||||
public PaymentInstrumentController(IPaymentInstrumentApplication paymentInstrumentApplication, IContractingPartyBankAccountsApplication contractingPartyBankAccountsApplication)
|
||||
{
|
||||
_paymentInstrumentApplication = paymentInstrumentApplication;
|
||||
_contractingPartyBankAccountsApplication = contractingPartyBankAccountsApplication;
|
||||
}
|
||||
/// <summary>
|
||||
///لیست اطلاعات بانکی جاری شرکا
|
||||
@@ -91,5 +94,97 @@ public class PaymentInstrumentController:AdminBaseController
|
||||
var result = await _paymentInstrumentApplication.DeleteGroup(id);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست شناسههای دستگاه پوز به صورت رشته
|
||||
/// </summary>
|
||||
/// <param name="search">عبارت جستجو</param>
|
||||
/// <param name="selected">مقدار انتخاب شده</param>
|
||||
/// <returns>لیست شناسههای دستگاه پوز</returns>
|
||||
[HttpGet("pos-terminal-id-select")]
|
||||
public async Task<ActionResult<OperationResult<List<string>>>> GetPosTerminalIdSelectList(string search, string selected)
|
||||
{
|
||||
return await _paymentInstrumentApplication.PosTerminalIdSelectList(search, selected);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست شمارههای شبا به صورت رشته
|
||||
/// </summary>
|
||||
/// <param name="search">عبارت جستجو</param>
|
||||
/// <param name="selected">مقدار انتخاب شده</param>
|
||||
/// <returns>لیست شمارههای شبا</returns>
|
||||
[HttpGet("iban-select")]
|
||||
public async Task<ActionResult<OperationResult<List<string>>>> GetIbanSelectList(string search, string selected)
|
||||
{
|
||||
var paymentIban = await _paymentInstrumentApplication.IbanSelectList(search, selected);
|
||||
var contractingIban = await _contractingPartyBankAccountsApplication.IBanSelectList(search, selected);
|
||||
|
||||
var combinedList = new List<string>();
|
||||
|
||||
if (paymentIban.IsSuccedded)
|
||||
{
|
||||
combinedList.AddRange(paymentIban.Data??[]);
|
||||
}
|
||||
|
||||
if (contractingIban.IsSuccedded)
|
||||
{
|
||||
combinedList.AddRange(contractingIban.Data??[]);
|
||||
}
|
||||
|
||||
return new OperationResult<List<string>>().Succcedded(combinedList.Distinct().ToList());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست شمارههای حساب به صورت رشته
|
||||
/// </summary>
|
||||
/// <param name="search">عبارت جستجو</param>
|
||||
/// <param name="selected">مقدار انتخاب شده</param>
|
||||
/// <returns>لیست شمارههای حساب</returns>
|
||||
[HttpGet("account-number-select")]
|
||||
public async Task<ActionResult<OperationResult<List<string>>>> GetAccountNumberSelectList(string search, string selected)
|
||||
{
|
||||
var paymentAccountNumbers = await _paymentInstrumentApplication.AccountNumberSelectList(search, selected);
|
||||
var contractingAccountNumbers = await _contractingPartyBankAccountsApplication.AccountNumberSelectList(search, selected);
|
||||
|
||||
var combinedList = new List<string>();
|
||||
|
||||
if (paymentAccountNumbers.IsSuccedded)
|
||||
{
|
||||
combinedList.AddRange(paymentAccountNumbers.Data??[]);
|
||||
}
|
||||
|
||||
if (contractingAccountNumbers.IsSuccedded)
|
||||
{
|
||||
combinedList.AddRange(contractingAccountNumbers.Data??[]);
|
||||
}
|
||||
|
||||
return new OperationResult<List<string>>().Succcedded(combinedList.Distinct().ToList());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست شمارههای کارت به صورت رشته
|
||||
/// </summary>
|
||||
/// <param name="search">عبارت جستجو</param>
|
||||
/// <param name="selected">مقدار انتخاب شده</param>
|
||||
/// <returns>لیست شمارههای کارت</returns>
|
||||
[HttpGet("card-number-select")]
|
||||
public async Task<ActionResult<OperationResult<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>();
|
||||
|
||||
if (paymentCardNumbers.IsSuccedded)
|
||||
{
|
||||
combinedList.AddRange(paymentCardNumbers.Data??[]);
|
||||
}
|
||||
|
||||
if (contractingCardNumbers.IsSuccedded)
|
||||
{
|
||||
combinedList.AddRange(contractingCardNumbers.Data??[]);
|
||||
}
|
||||
|
||||
return new OperationResult<List<string>>().Succcedded(combinedList.Distinct().ToList());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user