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> 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> 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("کد احراز صحیح نمی باشد"); } } }