Files
moadiran/Back/Controllers/VerificationController.cs
mmrbnjd cba0d3ba2e ...
2024-04-16 12:23:29 +03:30

67 lines
2.6 KiB
C#

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 {
ID = ID,
Code=0,
prm= _getVerificationValidation.verificationCode.prm,
Type= _getVerificationValidation.verificationCode.Type,
val= _getVerificationValidation.verificationCode.val
});;
}
[HttpPost("Submit")]
[AllowAnonymous]
public async Task<ActionResult<bool>> Submit(VerificationCodeDto item)
{
var VerificationCode= await _servValidatinMsg.GetVerificationCode(item.ID);
if (VerificationCode==null)
return NotFound("آیتمی یافت نشد");
if (VerificationCode.Code==item.Code)
{
if (VerificationCode.prm == item.prm && VerificationCode.val == item.val && VerificationCode.Type == item.Type)
{
switch (VerificationCode.Type)
{
case "NewTicketNoAuthentication":
return Ok(_servValidatinMsg.SubmittedTicket(VerificationCode));
default:
return BadRequest("این نوع احراز تعریف نشده");
}
}
else return BadRequest("اطلاعات شما منطبق با سامانه نیست");
}
else return BadRequest("کد احراز صحیح نمی باشد");
}
}
}