diff --git a/0_Framework/Application/Sms/ISmsService.cs b/0_Framework/Application/Sms/ISmsService.cs index d3915923..cb1fec3f 100644 --- a/0_Framework/Application/Sms/ISmsService.cs +++ b/0_Framework/Application/Sms/ISmsService.cs @@ -27,7 +27,8 @@ public interface ISmsService Task GetCreditAmount(); - public Task SendInstitutionVerificationLink(string number, string fullName, Guid institutionId, long contractingPartyId, long institutionContractId); + public Task SendInstitutionCreationVerificationLink(string number, string fullName, Guid institutionId, long contractingPartyId, long institutionContractId); + public Task SendInstitutionAmendmentVerificationLink(string number, string fullName, Guid institutionId, long contractingPartyId, long institutionContractId); public Task SendInstitutionVerificationCode(string number, string code, string contractingPartyFullName, long contractingPartyId, long institutionContractId); diff --git a/Company.Domain/InstitutionContractAgg/InstitutionContract.cs b/Company.Domain/InstitutionContractAgg/InstitutionContract.cs index 28862cf9..7d9fbdb5 100644 --- a/Company.Domain/InstitutionContractAgg/InstitutionContract.cs +++ b/Company.Domain/InstitutionContractAgg/InstitutionContract.cs @@ -272,6 +272,7 @@ public class InstitutionContractAmendment : EntityBase HasInstallment = hasInstallment; AmendmentChanges = amendmentChanges; LawId = lawId; + VerificationStatus = InstitutionContractVerificationStatus.PendingForVerify; } public long InstitutionContractId { get; set; } @@ -285,6 +286,15 @@ public class InstitutionContractAmendment : EntityBase public long LawId { get; set; } + + public string VerifierPhoneNumber { get; private set; } + + public string VerifierFullName { get; private set; } + + public InstitutionContractVerificationStatus VerificationStatus { get; set; } + + public DateTime VerifyCodeCreation { get; set; } + public void SetVerifyCode(string code,string verifierFullName, string verifierPhoneNumber) { VerifyCode = code; @@ -292,12 +302,10 @@ public class InstitutionContractAmendment : EntityBase VerifierFullName = verifierFullName; VerifierPhoneNumber = verifierPhoneNumber; } - - public string VerifierPhoneNumber { get; private set; } - - public string VerifierFullName { get; private set; } - - public DateTime VerifyCodeCreation { get; set; } + public void Verified() + { + VerificationStatus = InstitutionContractVerificationStatus.Verified; + } } public class InstitutionContractAmendmentChange : EntityBase diff --git a/CompanyManagment.Application/InstitutionContractApplication.cs b/CompanyManagment.Application/InstitutionContractApplication.cs index bfbb45f2..c01e95c2 100644 --- a/CompanyManagment.Application/InstitutionContractApplication.cs +++ b/CompanyManagment.Application/InstitutionContractApplication.cs @@ -1140,7 +1140,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication CreateContractingPartyAccount(contractingParty.id, res.SendId); - await _smsService.SendInstitutionVerificationLink(contractingParty.Phone, contractingPartyFullName, + await _smsService.SendInstitutionCreationVerificationLink(contractingParty.Phone, contractingPartyFullName, entity.PublicId, contractingParty.id,entity.id ); await _institutionContractRepository.SaveChangesAsync(); @@ -1377,7 +1377,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication if (contractingParty == null) throw new NotFoundException("طرف قرارداد یافت نشد"); var contractingPartyFullName = contractingParty.FName + " " + contractingParty.LName; - await _smsService.SendInstitutionVerificationLink(contractingParty.Phone, contractingPartyFullName, + await _smsService.SendInstitutionCreationVerificationLink(contractingParty.Phone, contractingPartyFullName, 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 fd9536f5..b2e639c6 100644 --- a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs +++ b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs @@ -2341,7 +2341,7 @@ public class InstitutionContractRepository : RepositoryBase x.InstitutionContractId == institutionContractId);; var temp = new InstitutionContractAmendmentTemp(workshops, institutionContractId); @@ -2884,9 +2886,16 @@ public class InstitutionContractRepository : RepositoryBase SendInstitutionVerificationLink(string number, string fullName, Guid institutionId, long contractingPartyId, long institutionContractId) + public async Task SendInstitutionCreationVerificationLink(string number, string fullName, Guid institutionId, long contractingPartyId, long institutionContractId) { var guidStr=institutionId.ToString(); var firstPart = guidStr.Substring(0, 15); @@ -343,7 +343,26 @@ public class SmsService : ISmsService new("CODE1",firstPart), new("CODE2",secondPart) }); - var smsResult = new SmsResult(verificationSendResult.Data.MessageId, verificationSendResult.Message, "لینک تاییدیه قرارداد مالی", + 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 SendInstitutionAmendmentVerificationLink(string number, string fullName, Guid institutionId, + long contractingPartyId, long institutionContractId) + { + var guidStr=institutionId.ToString(); + var firstPart = guidStr.Substring(0, 15); + var secondPart = guidStr.Substring(15); + var verificationSendResult =await SmsIr.VerifySendAsync(number, 527519, new VerifySendParameter[] + { + new("FULLNAME", fullName), + 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();