From 84060e83f53a2f4ce7d52f1562e5de9f584a0d1f Mon Sep 17 00:00:00 2001 From: mahan Date: Mon, 29 Sep 2025 10:21:08 +0330 Subject: [PATCH] fix: change send sms verification and fix validation bug --- .../InstitutionContract.cs | 3 ++ .../IInstitutionContractApplication.cs | 1 - .../InstitutionContractApplication.cs | 31 +++---------------- 3 files changed, 8 insertions(+), 27 deletions(-) diff --git a/Company.Domain/InstitutionContractAgg/InstitutionContract.cs b/Company.Domain/InstitutionContractAgg/InstitutionContract.cs index 09ca6f4f..33ccbd3f 100644 --- a/Company.Domain/InstitutionContractAgg/InstitutionContract.cs +++ b/Company.Domain/InstitutionContractAgg/InstitutionContract.cs @@ -124,6 +124,9 @@ public class InstitutionContract : EntityBase [NotMapped] public bool VerifyCodeExpired => VerifyCodeCreation.AddMinutes(5) <= DateTime.Now; + + [NotMapped] + public bool CanCreateNewVerifyCode => VerifyCodeCreation.AddMinutes(2) <= DateTime.Now; public bool IsInstallment { get; set; } diff --git a/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs b/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs index c100faf2..737254d9 100644 --- a/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs +++ b/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs @@ -213,7 +213,6 @@ public interface IInstitutionContractApplication #endregion Task GetVerificationDetails(Guid id); - Task Verify(Guid id, string code); Task SendVerifyOtp(Guid id); Task VerifyOtp(Guid publicId, string code); } diff --git a/CompanyManagment.Application/InstitutionContractApplication.cs b/CompanyManagment.Application/InstitutionContractApplication.cs index 8739d0f8..7124cd1e 100644 --- a/CompanyManagment.Application/InstitutionContractApplication.cs +++ b/CompanyManagment.Application/InstitutionContractApplication.cs @@ -1102,28 +1102,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication { return await _institutionContractRepository.GetVerificationDetails(id); } - - public async Task Verify(Guid id, string code) - { - var institutionContract = await _institutionContractRepository.GetByPublicIdAsync(id); - if (institutionContract == null) - { - throw new NotFoundException("رکورد مورد نظر یافت نشد"); - } - - if (institutionContract.VerificationStatus != InstitutionContractVerificationStatus.PendingForVerify) - throw new BadRequestException("تاییدیه این قرارداد مالی منقضی شده است"); - - if (institutionContract.VerifyCodeCreation.AddDays(1) < DateTime.Now) - throw new BadRequestException("تاییدیه این قرارداد مالی منقضی شده است"); - - if (institutionContract.VerifyCode != code) - throw new BadRequestException("کد وارد شده صحیح نمی باشد"); - - institutionContract.Verified(); - await _institutionContractRepository.SaveChangesAsync(); - return new OperationResult().Succcedded(); - } + public async Task SendVerifyOtp(Guid id) { @@ -1135,11 +1114,11 @@ public class InstitutionContractApplication : IInstitutionContractApplication if (institutionContract.VerificationStatus == InstitutionContractVerificationStatus.Verified) throw new BadRequestException("این قرارداد مالی قبلا تایید شده است"); - + if (institutionContract.VerificationStatus == InstitutionContractVerificationStatus.PendingForVerify && institutionContract.VerifyCodeCreation != DateTime.MinValue) { - if (!institutionContract.VerifyCodeExpired) + if (!institutionContract.CanCreateNewVerifyCode) { throw new BadRequestException("کد تایید قبلی هنوز منقضی نشده است"); } @@ -1149,7 +1128,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication if (contractingParty == null) throw new NotFoundException("طرف قرارداد یافت نشد"); - var code = new Random().Next(100000, 999999).ToString(); + var code = new Random().Next(1000, 9999).ToString(); institutionContract.SetVerifyCode(code); var transaction = await _institutionContractRepository.BeginTransactionAsync(); @@ -1182,7 +1161,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication throw new BadRequestException("این قرارداد مالی قبلا تایید شده است"); if (institutionContract.VerificationStatus == InstitutionContractVerificationStatus.PendingForVerify && - !institutionContract.VerifyCodeExpired) + institutionContract.VerifyCodeExpired) throw new BadRequestException("کد تایید منقضی شده است"); var contractingParty = _contractingPartyRepository.Get(institutionContract.ContractingPartyId);