155 lines
5.8 KiB
C#
155 lines
5.8 KiB
C#
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using _0_Framework.Application;
|
|
using Company.Domain.PaymentInstrumentAgg;
|
|
using CompanyManagment.App.Contracts.PaymentInstrument;
|
|
|
|
namespace CompanyManagment.Application;
|
|
|
|
public class PaymentInstrumentApplication:IPaymentInstrumentApplication
|
|
{
|
|
private readonly IPaymentInstrumentRepository _paymentInstrumentRepository;
|
|
private readonly IPaymentInstrumentGroupRepository _paymentInstrumentGroupRepository;
|
|
|
|
public PaymentInstrumentApplication(IPaymentInstrumentRepository paymentInstrumentRepository,
|
|
IPaymentInstrumentGroupRepository paymentInstrumentGroupRepository)
|
|
{
|
|
_paymentInstrumentRepository = paymentInstrumentRepository;
|
|
_paymentInstrumentGroupRepository = paymentInstrumentGroupRepository;
|
|
}
|
|
|
|
public async Task<OperationResult> CreateBankAccount(CreateBankPaymentInstrument command)
|
|
{
|
|
var op = new OperationResult();
|
|
if (command.IsAuth)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(command.AccountNumber))
|
|
{
|
|
return op.Failed("شماره حساب نمیتواند خالی باشد");
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(command.IBan))
|
|
{
|
|
return op.Failed("شماره شبا نمیتواند خالی باشد");
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(command.CardNumber))
|
|
{
|
|
return op.Failed("شماره کارت نمیتواند خالی باشد");
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(command.AccountHolderName))
|
|
{
|
|
return op.Failed("نام صاحب حساب نمیتواند خالی باشد");
|
|
}
|
|
}
|
|
var entity = PaymentInstrument.CreateBankAccount(command.CardNumber, command.AccountHolderName, command.AccountNumber,
|
|
command.IBan, command.IsAuth,command.PaymentInstrumentGroupId);
|
|
await _paymentInstrumentRepository.CreateAsync(entity);
|
|
await _paymentInstrumentRepository.SaveChangesAsync();
|
|
return op.Succcedded();
|
|
|
|
}
|
|
|
|
public async Task<OperationResult> CreatePos(CreatePosPaymentInstrument command)
|
|
{
|
|
var op = new OperationResult();
|
|
if (string.IsNullOrWhiteSpace(command.PosTerminalId))
|
|
{
|
|
return op.Failed("شناسه دستگاه یوزر نمیتواند خالی باشد");
|
|
}
|
|
|
|
var entity = PaymentInstrument.CreatePosType(command.PosTerminalId, command.Description,command.PaymentInstrumentGroupId);
|
|
await _paymentInstrumentRepository.CreateAsync(entity);
|
|
await _paymentInstrumentRepository.SaveChangesAsync();
|
|
return op.Succcedded();
|
|
}
|
|
|
|
public async Task<GetPaymentInstrumentListViewModel> GetList(PaymentInstrumentSearchModel searchModel)
|
|
{
|
|
return await _paymentInstrumentRepository.GetList(searchModel);
|
|
}
|
|
|
|
public async Task<OperationResult> CreateGroup(CreateBankPaymentInstrumentGroup command)
|
|
{
|
|
var op = new OperationResult();
|
|
if (string.IsNullOrWhiteSpace(command.Name))
|
|
{
|
|
return op.Failed("لطفا عنوان خودرا وارد کنید");
|
|
}
|
|
|
|
var instrumentGroup = new PaymentInstrumentGroup(command.Name);
|
|
await _paymentInstrumentGroupRepository.CreateAsync(instrumentGroup);
|
|
await _paymentInstrumentGroupRepository.SaveChangesAsync();
|
|
return op.Succcedded();
|
|
}
|
|
|
|
public async Task<OperationResult> EditGroup(EditBankPaymentInstrumentGroup command)
|
|
{
|
|
var op = new OperationResult();
|
|
if (string.IsNullOrWhiteSpace(command.Name))
|
|
{
|
|
return op.Failed("لطفا عنوان خودرا وارد کنید");
|
|
}
|
|
|
|
var paymentInstrumentGroup = _paymentInstrumentGroupRepository.Get(command.Id);
|
|
if (paymentInstrumentGroup == null)
|
|
{
|
|
return op.Failed("عنوان مورد نظر یافت نشد");
|
|
}
|
|
paymentInstrumentGroup.Edit(command.Name);
|
|
await _paymentInstrumentGroupRepository.SaveChangesAsync();
|
|
return op.Succcedded();
|
|
}
|
|
|
|
public async Task<OperationResult> DeleteGroup(long id)
|
|
{
|
|
var op = new OperationResult();
|
|
|
|
var paymentInstrumentGroup = _paymentInstrumentGroupRepository.Get(id);
|
|
if (paymentInstrumentGroup == null)
|
|
{
|
|
return op.Failed("عنوان مورد نظر یافت نشد");
|
|
}
|
|
_paymentInstrumentGroupRepository.Remove(paymentInstrumentGroup);
|
|
await _paymentInstrumentGroupRepository.SaveChangesAsync();
|
|
return op.Succcedded();
|
|
}
|
|
|
|
public async Task<List<PaymentInstrumentGroupsViewModel>> GetGroup()
|
|
{
|
|
return await _paymentInstrumentGroupRepository.GetList();
|
|
}
|
|
|
|
public async Task<List<PosTerminalSelectListViewModel>> GetPosTerminalSelectList(string search)
|
|
{
|
|
return await _paymentInstrumentRepository.GetPosTerminalSelectList(search);
|
|
}
|
|
|
|
public async Task<List<string>> PosTerminalIdSelectList(string search, string selected)
|
|
{
|
|
return await _paymentInstrumentRepository.PosTerminalIdSelectList(search, selected);
|
|
}
|
|
|
|
public async Task<List<string>> IbanSelectList(string search, string selected)
|
|
{
|
|
return await _paymentInstrumentRepository.IbanSelectList(search, selected);
|
|
}
|
|
|
|
public async Task<List<string>> AccountNumberSelectList(string search, string selected)
|
|
{
|
|
return await _paymentInstrumentRepository.AccountNumberSelectList(search, 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);
|
|
}
|
|
}
|
|
|