This commit is contained in:
mmrbnjd
2024-04-15 17:16:17 +03:30
parent 3f429e0539
commit 5f422bc11f
7 changed files with 148 additions and 59 deletions

View File

@@ -34,7 +34,7 @@
<ItemGroup>
<Reference Include="Service">
<HintPath>..\..\Dlls\Service.dll</HintPath>
<HintPath>..\..\..\LocalGit\TaxPayerTools\Service\bin\Debug\Service.dll</HintPath>
</Reference>
</ItemGroup>

View File

@@ -0,0 +1,38 @@
using Back.Data.Models;
using Back.Services;
using Back.Validations;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Shared.DTOs;
namespace Back.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class VerificationController : ControllerBase
{
//private readonly ServValidatinMsg _servValidatinMsg;
private readonly GetVerificationValidation _getVerificationValidation;
public VerificationController(/*ServValidatinMsg servValidatinMsg, */GetVerificationValidation getVerificationValidation)
{
//_servValidatinMsg = servValidatinMsg;
_getVerificationValidation = getVerificationValidation;
}
[HttpGet("GetVerification/{ID}")]
[AllowAnonymous]
public async Task<ActionResult<VerificationCode>> GetVerification(int ID)
{
var resultValidationmodel = await _getVerificationValidation.ValidateAsync(ID);
if (!resultValidationmodel.IsValid)
return BadRequest(resultValidationmodel.Errors.Select(s => s.ErrorMessage).ToList());
return Ok(new VerificationCodeDto {
prm= _getVerificationValidation.verificationCode.prm,
Type= _getVerificationValidation.verificationCode.Type,
val= _getVerificationValidation.verificationCode.val
});
}
}
}

View File

@@ -23,6 +23,7 @@ builder.Services.AddScoped<MobileValidation> ();
builder.Services.AddScoped<Service.Main>();
builder.Services.AddScoped<servTicket > ();
builder.Services.AddScoped < ServValidatinMsg>();
builder.Services.AddScoped<GetVerificationValidation> ();
string origins = "OriginTaxPayer";
builder.Services.AddCors(options =>
{

View File

@@ -16,14 +16,14 @@ namespace Back.Services
return await _verificationCodeRepo.Get(w => w.prm == Prm).FirstOrDefaultAsync();
}
public async Task<VerificationCode> GetRegistrationCode(int ID)
public async Task<VerificationCode> GetVerificationCode(int ID)
{
return await _verificationCodeRepo.Get(w => w.ID == ID).FirstOrDefaultAsync();
}
public async Task<int> GenerateCode(VerificationCode code)
{
code.Code = Random.Shared.Next(1000, 9000);
while (await GetRegistrationCode(code.ID) != null)
while (await GetVerificationCode(code.ID) != null)
code.Code = Random.Shared.Next(1000, 9000);

View File

@@ -0,0 +1,26 @@
using Back.Data.Models;
using Back.Services;
using FluentValidation;
using Shared.DTOs;
using System;
namespace Back.Validations
{
public class GetVerificationValidation : AbstractValidator<int>
{
public VerificationCode verificationCode { get; set; }
public GetVerificationValidation(ServValidatinMsg _servValidatinMsg)
{
CascadeMode = CascadeMode.Stop;
RuleFor(model => model)
.Custom((model, context) => {
verificationCode= _servValidatinMsg.GetVerificationCode(model).Result;
if (verificationCode==null)
context.AddFailure("کد یافت نشد");
});
}
}
}