fix: change send sms verification and fix validation bug

This commit is contained in:
2025-09-29 10:21:08 +03:30
parent 90c6eef199
commit 84060e83f5
3 changed files with 8 additions and 27 deletions

View File

@@ -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; }

View File

@@ -213,7 +213,6 @@ public interface IInstitutionContractApplication
#endregion
Task<GetInstitutionVerificationDetailsViewModel> GetVerificationDetails(Guid id);
Task<OperationResult> Verify(Guid id, string code);
Task<OperationResult> SendVerifyOtp(Guid id);
Task<OperationResult> VerifyOtp(Guid publicId, string code);
}

View File

@@ -1102,28 +1102,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
{
return await _institutionContractRepository.GetVerificationDetails(id);
}
public async Task<OperationResult> 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<OperationResult> 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);