using _0_Framework.Application; 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; } /// ///لیست اطلاعات بانکی جاری شرکا /// /// /// [HttpGet] public async Task> List(PaymentInstrumentSearchModel searchModel) { var list =await _paymentInstrumentApplication.GetList(searchModel); return list; } /// /// ایجاد اطلاعات بانکی /// /// /// [HttpPost("bankAccount")] public async Task> CreateBankAccount([FromBody] CreateBankPaymentInstrument command) { var result = await _paymentInstrumentApplication.CreateBankAccount(command); return result; } /// /// ایجاد اطلاعات دستگاه پوز /// /// /// [HttpPost("pos")] public async Task> CreatePos([FromBody]CreatePosPaymentInstrument command) { var result =await _paymentInstrumentApplication.CreatePos(command); return result; } /// /// گرفتن عنوان ها /// /// [HttpGet("group")] public async Task>> GetGroups() { var result = await _paymentInstrumentApplication.GetGroup(); return result; } /// /// ایجاد عنوان /// /// /// [HttpPost("group")] public async Task> CreateGroup([FromBody]CreateBankPaymentInstrumentGroup command) { var result = await _paymentInstrumentApplication.CreateGroup(command); return result; } /// /// ویرایش عنوان /// /// /// [HttpPut("group")] public async Task> EditGroup([FromBody]EditBankPaymentInstrumentGroup command) { var result = await _paymentInstrumentApplication.EditGroup(command); return result; } /// /// حذف عنوان /// /// /// [HttpDelete("group/{id}")] public async Task> DeleteGroup(long id) { var result = await _paymentInstrumentApplication.DeleteGroup(id); return result; } /// /// دریافت لیست شناسه‌های دستگاه پوز به صورت رشته /// /// عبارت جستجو /// مقدار انتخاب شده /// لیست شناسه‌های دستگاه پوز [HttpGet("pos-terminal-id-select")] public async Task>>> GetPosTerminalIdSelectList(string search, string selected) { return await _paymentInstrumentApplication.PosTerminalIdSelectList(search, selected); } /// /// دریافت لیست شماره‌های شبا به صورت رشته /// /// عبارت جستجو /// مقدار انتخاب شده /// لیست شماره‌های شبا [HttpGet("iban-select")] public async Task>>> GetIbanSelectList(string search, string selected) { var paymentIban = await _paymentInstrumentApplication.IbanSelectList(search, selected); var contractingIban = await _contractingPartyBankAccountsApplication.IBanSelectList(search, selected); var combinedList = new List(); if (paymentIban.IsSuccedded) { combinedList.AddRange(paymentIban.Data??[]); } if (contractingIban.IsSuccedded) { combinedList.AddRange(contractingIban.Data??[]); } return new OperationResult>().Succcedded(combinedList.Distinct().ToList()); } /// /// دریافت لیست شماره‌های حساب به صورت رشته /// /// عبارت جستجو /// مقدار انتخاب شده /// لیست شماره‌های حساب [HttpGet("account-number-select")] public async Task>>> GetAccountNumberSelectList(string search, string selected) { var paymentAccountNumbers = await _paymentInstrumentApplication.AccountNumberSelectList(search, selected); var contractingAccountNumbers = await _contractingPartyBankAccountsApplication.AccountNumberSelectList(search, selected); var combinedList = new List(); if (paymentAccountNumbers.IsSuccedded) { combinedList.AddRange(paymentAccountNumbers.Data??[]); } if (contractingAccountNumbers.IsSuccedded) { combinedList.AddRange(contractingAccountNumbers.Data??[]); } return new OperationResult>().Succcedded(combinedList.Distinct().ToList()); } /// /// دریافت لیست شماره‌های کارت به صورت رشته /// /// عبارت جستجو /// مقدار انتخاب شده /// لیست شماره‌های کارت [HttpGet("card-number-select")] public async Task>>> GetCardNumberSelectList(string search, string selected) { var paymentCardNumbers = await _paymentInstrumentApplication.CardNumberSelectList(search, selected); var contractingCardNumbers = await _contractingPartyBankAccountsApplication.CardNumberSelectList(search, selected); var combinedList = new List(); if (paymentCardNumbers.IsSuccedded) { combinedList.AddRange(paymentCardNumbers.Data??[]); } if (contractingCardNumbers.IsSuccedded) { combinedList.AddRange(contractingCardNumbers.Data??[]); } return new OperationResult>().Succcedded(combinedList.Distinct().ToList()); } }