Files
Backend-Api/ServiceHost/Areas/Admin/Controllers/PaymentInstrumentController.cs

253 lines
9.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using _0_Framework.Application;
using _0_Framework.Exceptions;
using CompanyManagment.App.Contracts.ContractingPartyBankAccounts;
using CompanyManagment.App.Contracts.PaymentInstrument;
using Microsoft.AspNetCore.Mvc;
using ServiceHost.BaseControllers;
namespace ServiceHost.Areas.Admin.Controllers;
public class PaymentInstrumentController:AdminBaseController
{
private readonly IPaymentInstrumentApplication _paymentInstrumentApplication;
private readonly IContractingPartyBankAccountsApplication _contractingPartyBankAccountsApplication;
public PaymentInstrumentController(IPaymentInstrumentApplication paymentInstrumentApplication, IContractingPartyBankAccountsApplication contractingPartyBankAccountsApplication)
{
_paymentInstrumentApplication = paymentInstrumentApplication;
_contractingPartyBankAccountsApplication = contractingPartyBankAccountsApplication;
}
/// <summary>
///لیست اطلاعات بانکی جاری شرکا
/// </summary>
/// <param name="searchModel"></param>
/// <returns></returns>
[HttpGet]
public async Task<ActionResult<GetPaymentInstrumentListViewModel>> List(PaymentInstrumentSearchModel searchModel)
{
var list =await _paymentInstrumentApplication.GetList(searchModel);
return list;
}
/// <summary>
/// ایجاد اطلاعات بانکی
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
[HttpPost("bankAccount")]
public async Task<ActionResult<OperationResult>> CreateBankAccount([FromBody] List<CreateBankPaymentInstrument> command)
{
var result = await _paymentInstrumentApplication.CreateBankAccount(command);
return result;
}
/// <summary>
/// ایجاد اطلاعات دستگاه پوز
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
[HttpPost("pos")]
public async Task<ActionResult<OperationResult>> CreatePos([FromBody]CreatePosPaymentInstrument command)
{
var result =await _paymentInstrumentApplication.CreatePos(command);
return result;
}
/// <summary>
/// گرفتن عنوان ها
/// </summary>
/// <returns></returns>
[HttpGet("group")]
public async Task<ActionResult<List<PaymentInstrumentGroupsViewModel>>> GetGroups()
{
var result = await _paymentInstrumentApplication.GetGroup();
return result;
}
/// <summary>
/// ایجاد عنوان
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
[HttpPost("group")]
public async Task<ActionResult<OperationResult>> CreateGroup([FromBody]CreateBankPaymentInstrumentGroup command)
{
var result = await _paymentInstrumentApplication.CreateGroup(command);
return result;
}
/// <summary>
/// ویرایش عنوان
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
[HttpPut("group")]
public async Task<ActionResult<OperationResult>> EditGroup([FromBody]EditBankPaymentInstrumentGroup command)
{
var result = await _paymentInstrumentApplication.EditGroup(command);
return result;
}
/// <summary>
/// حذف عنوان
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpDelete("group/{id}")]
public async Task<ActionResult<OperationResult>> DeleteGroup(long id)
{
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<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<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 != null)
{
combinedList.AddRange(paymentIban);
}
if (contractingIban != null)
{
combinedList.AddRange(contractingIban);
}
return combinedList.Distinct().ToList();
}
/// <summary>
/// دریافت لیست شماره‌های حساب به صورت رشته
/// </summary>
/// <param name="search">عبارت جستجو</param>
/// <param name="selected">مقدار انتخاب شده</param>
/// <returns>لیست شماره‌های حساب</returns>
[HttpGet("account-number-select")]
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 combinedList = new List<string>();
if (paymentAccountNumbers != null)
{
combinedList.AddRange(paymentAccountNumbers);
}
if (contractingAccountNumbers != null)
{
combinedList.AddRange(contractingAccountNumbers);
}
return combinedList.Distinct().ToList();
}
/// <summary>
/// دریافت لیست شماره‌های کارت به صورت رشته
/// </summary>
/// <param name="search">عبارت جستجو</param>
/// <param name="selected">مقدار انتخاب شده</param>
/// <returns>لیست شماره‌های کارت</returns>
[HttpGet("card-number-select")]
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>();
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();
}
[HttpPost("bank-account-inquiry")]
public async Task<ActionResult<ContractingPartyBankInquiryResponse>> GetBankInquiry([FromBody]InquiryContractingPartyBankDetailsRequest command)
{
return await _contractingPartyBankAccountsApplication.InquiryContractingPartyBankDetails(command);
}
}
public class BankInquiryRequest
{
public string CardNumber { get; set; }
public string IBan { get; set; }
public string AccountNumber { get; set; }
public string BankName { get; set; }
}
public class BankInquiryResponse
{
public string CardNumber { get; set; }
public string IBan { get; set; }
public string AccountNumber { get; set; }
public string BankName { get; set; }
public string AccountHolderName { get; set; }
}