From 25c7b67eb5ee11052a05ff888b1504c1d3b2fdd0 Mon Sep 17 00:00:00 2001 From: mahan Date: Sat, 25 Oct 2025 14:18:04 +0330 Subject: [PATCH] feat: extend SMS service to include contracting party and institution contract IDs in verification link and code methods --- 0_Framework/Application/Sms/ISmsService.cs | 5 ++-- Company.Domain/SmsResultAgg/SmsResult.cs | 3 +- .../InstitutionContractApplication.cs | 4 +-- .../InstitutionContractRepository.cs | 2 +- .../Services}/SmsService.cs | 28 +++++++++++++------ 5 files changed, 28 insertions(+), 14 deletions(-) rename {0_Framework/Application/Sms => CompanyManagment.EFCore/Services}/SmsService.cs (89%) diff --git a/0_Framework/Application/Sms/ISmsService.cs b/0_Framework/Application/Sms/ISmsService.cs index 743b18e4..d3915923 100644 --- a/0_Framework/Application/Sms/ISmsService.cs +++ b/0_Framework/Application/Sms/ISmsService.cs @@ -27,9 +27,10 @@ public interface ISmsService Task GetCreditAmount(); - public Task SendInstitutionVerificationLink(string number,string fullName, Guid institutionId); + public Task SendInstitutionVerificationLink(string number, string fullName, Guid institutionId, long contractingPartyId, long institutionContractId); - public Task SendInstitutionVerificationCode(string number, string code); + public Task SendInstitutionVerificationCode(string number, string code, string contractingPartyFullName, + long contractingPartyId, long institutionContractId); #endregion diff --git a/Company.Domain/SmsResultAgg/SmsResult.cs b/Company.Domain/SmsResultAgg/SmsResult.cs index 7a460662..5270f4de 100644 --- a/Company.Domain/SmsResultAgg/SmsResult.cs +++ b/Company.Domain/SmsResultAgg/SmsResult.cs @@ -5,7 +5,8 @@ namespace Company.Domain.SmsResultAgg; public class SmsResult: EntityBase { - public SmsResult(int messageId, string status,string typeOfSms, string contractingPartyName,string mobile, long contractingPatyId, long institutionContractId) + public SmsResult(int messageId, string status,string typeOfSms, + string contractingPartyName,string mobile, long contractingPatyId, long institutionContractId) { MessageId = messageId; Status = status; diff --git a/CompanyManagment.Application/InstitutionContractApplication.cs b/CompanyManagment.Application/InstitutionContractApplication.cs index f6599b33..4ac9321b 100644 --- a/CompanyManagment.Application/InstitutionContractApplication.cs +++ b/CompanyManagment.Application/InstitutionContractApplication.cs @@ -1141,7 +1141,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication await _smsService.SendInstitutionVerificationLink(contractingParty.Phone, contractingPartyFullName, - entity.PublicId); + entity.PublicId, contractingParty.id,entity.id ); await _institutionContractRepository.SaveChangesAsync(); @@ -1373,7 +1373,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication throw new NotFoundException("طرف قرارداد یافت نشد"); var contractingPartyFullName = contractingParty.FName + " " + contractingParty.LName; await _smsService.SendInstitutionVerificationLink(contractingParty.Phone, contractingPartyFullName, - institutionContract.PublicId); + institutionContract.PublicId, contractingParty.id, institutionContract.id); return new OperationResult().Succcedded(); } diff --git a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs index 5a0c90ac..8486eb7e 100644 --- a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs +++ b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs @@ -2339,7 +2339,7 @@ public class InstitutionContractRepository : RepositoryBase SendInstitutionVerificationLink(string number,string fullName, Guid institutionId) + public async Task SendInstitutionVerificationLink(string number, string fullName, Guid institutionId, long contractingPartyId, long institutionContractId) { var guidStr=institutionId.ToString(); var firstPart = guidStr.Substring(0, 15); @@ -341,15 +343,25 @@ public class SmsService : ISmsService new("CODE1",firstPart), new("CODE2",secondPart) }); + var smsResult = new SmsResult(verificationSendResult.Data.MessageId, verificationSendResult.Message, "لینک تاییدیه قرارداد مالی", + fullName, number, contractingPartyId, institutionContractId); + await _smsResultRepository.CreateAsync(smsResult); + await _smsResultRepository.SaveChangesAsync(); return verificationSendResult.Status == 0; } - public async Task SendInstitutionVerificationCode(string number, string code) + public async Task SendInstitutionVerificationCode(string number, string code, string contractingPartyFullName, + long contractingPartyId, long institutionContractId) { var verificationSendResult =await SmsIr.VerifySendAsync(number, 965348, new VerifySendParameter[] { new("VERIFYCODE", code) }); + + var smsResult = new SmsResult(verificationSendResult.Data.MessageId, verificationSendResult.Message, "کد تاییدیه قرارداد مالی", + contractingPartyFullName, number, contractingPartyId, institutionContractId); + await _smsResultRepository.CreateAsync(smsResult); + await _smsResultRepository.SaveChangesAsync(); return verificationSendResult.Status == 0; }