From 232a834dc929804813d3b3a70adef3acfc9134b9 Mon Sep 17 00:00:00 2001 From: mahan Date: Tue, 21 Oct 2025 11:41:23 +0330 Subject: [PATCH] feat: add resend verification link end point added --- .../IInstitutionContractApplication.cs | 2 ++ .../InstitutionContractApplication.cs | 22 +++++++++++++++++++ .../institutionContractController.cs | 7 ++++++ 3 files changed, 31 insertions(+) diff --git a/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs b/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs index ac79c070..8cfc66af 100644 --- a/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs +++ b/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs @@ -238,6 +238,8 @@ public interface IInstitutionContractApplication #endregion + + Task ResendVerifyLink(long institutionContractId); } public class InsitutionContractAmendmentPaymentRequest diff --git a/CompanyManagment.Application/InstitutionContractApplication.cs b/CompanyManagment.Application/InstitutionContractApplication.cs index 257df50d..2d458a64 100644 --- a/CompanyManagment.Application/InstitutionContractApplication.cs +++ b/CompanyManagment.Application/InstitutionContractApplication.cs @@ -1345,6 +1345,28 @@ public class InstitutionContractApplication : IInstitutionContractApplication return _institutionContractRepository.GetAmendmentPaymentDetails(request); } + public async Task ResendVerifyLink(long institutionContractId) + { + var institutionContract = _institutionContractRepository.Get(institutionContractId); + + if (institutionContract == null) + { + throw new NotFoundException("رکورد مورد نظر یافت نشد"); + } + + if (institutionContract.VerificationStatus != InstitutionContractVerificationStatus.PendingForVerify) + { + throw new BadRequestException("این قرارداد مالی در وضعیت مناسبی برای ارسال مجدد لینک تایید نمی باشد"); + } + var contractingParty = _contractingPartyRepository.Get(institutionContract.ContractingPartyId); + if (contractingParty == null) + throw new NotFoundException("طرف قرارداد یافت نشد"); + var contractingPartyFullName = contractingParty.FName + " " + contractingParty.LName; + await _smsService.SendInstitutionVerificationLink(contractingParty.Phone, contractingPartyFullName, + institutionContract.PublicId); + return new OperationResult().Succcedded(); + } + private async Task> CreateLegalContractingPartyEntity( CreateInstitutionContractLegalPartyRequest request, long representativeId, string address, string city, diff --git a/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs b/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs index 0844af92..00fdc34b 100644 --- a/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs +++ b/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs @@ -527,6 +527,13 @@ public class institutionContractController : AdminBaseController var res =await _institutionContractApplication.GetAmendmentWorkshops(institutionContractId); return res; } + + [HttpPost("resend-verify-link/{institutionContractId}")] + public async Task ResendVerifyLink(long institutionContractId) + { + var res = await _institutionContractApplication.ResendVerifyLink(institutionContractId); + return res; + } }