Files
moadiran/Back/Controllers/VerificationController.cs

121 lines
5.0 KiB
C#
Raw Normal View History

2024-04-15 17:16:17 +03:30
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;
2024-04-17 15:49:34 +03:30
using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
2024-04-15 17:16:17 +03:30
namespace Back.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class VerificationController : ControllerBase
{
2024-04-16 12:23:29 +03:30
private readonly ServValidatinMsg _servValidatinMsg;
2024-04-15 17:16:17 +03:30
private readonly GetVerificationValidation _getVerificationValidation;
2024-04-17 15:49:34 +03:30
private readonly servSendMsg _servSendMsg;
private readonly servCompany _servCompany;
public VerificationController(ServValidatinMsg servValidatinMsg, GetVerificationValidation getVerificationValidation
2024-04-19 03:23:30 +03:30
, servCompany servCompany, servSendMsg servSendMsg)
2024-04-15 17:16:17 +03:30
{
2024-04-16 12:23:29 +03:30
_servValidatinMsg = servValidatinMsg;
2024-04-15 17:16:17 +03:30
_getVerificationValidation = getVerificationValidation;
2024-04-17 15:49:34 +03:30
_servCompany = servCompany;
2024-04-19 03:23:30 +03:30
_servSendMsg = servSendMsg;
2024-04-15 17:16:17 +03:30
}
[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 {
2024-04-15 23:09:11 +03:30
ID = ID,
2024-04-15 23:31:24 +03:30
Code=0,
2024-04-15 17:16:17 +03:30
prm= _getVerificationValidation.verificationCode.prm,
Type= _getVerificationValidation.verificationCode.Type,
val= _getVerificationValidation.verificationCode.val
2024-04-15 23:09:11 +03:30
});;
}
2024-04-16 22:56:02 +03:30
[HttpGet("ReSend/{ID}")]
[AllowAnonymous]
public async Task<ActionResult> ReSend(int ID)
{
var resultValidationmodel = await _getVerificationValidation.ValidateAsync(ID);
if (!resultValidationmodel.IsValid)
return BadRequest(resultValidationmodel.Errors.Select(s => s.ErrorMessage).ToList());
// _getVerificationValidation.verificationCode
2024-04-17 15:49:34 +03:30
switch (_getVerificationValidation.verificationCode.Type)
{
case "NewTicketNoAuthentication":
_servSendMsg.Authentication(_getVerificationValidation.verificationCode.val, ID.ToString());
break;
case "CompanyRegistration":
var company=await _servCompany.GetCompanyOrg(Convert.ToInt32(_getVerificationValidation.verificationCode.prm),false);
_servSendMsg.Authentication(company.Mobile, ID.ToString());
break;
default:
return BadRequest("این نوع احراز تعریف نشده");
}
2024-04-16 22:56:02 +03:30
return NoContent();
}
2024-04-15 23:09:11 +03:30
[HttpPost("Submit")]
[AllowAnonymous]
public async Task<ActionResult<bool>> Submit(VerificationCodeDto item)
{
2024-04-16 12:23:29 +03:30
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)
{
2024-04-16 22:56:02 +03:30
bool Sucstatus = false;
2024-04-16 12:23:29 +03:30
switch (VerificationCode.Type)
{
case "NewTicketNoAuthentication":
2024-04-16 22:56:02 +03:30
Sucstatus = await _servValidatinMsg.SubmittedTicket(VerificationCode);
break;
2024-04-17 15:49:34 +03:30
case "CompanyRegistration":
//string UserID = VerificationCode.val;
Sucstatus = await _servValidatinMsg.SubmittedCompanyRegistration(VerificationCode);
// return Ok(await _servUser.UserAuthentication(UserID));
//else return BadRequest();
break;
2024-04-16 12:23:29 +03:30
default:
return BadRequest("این نوع احراز تعریف نشده");
}
2024-04-17 15:49:34 +03:30
2024-04-16 22:56:02 +03:30
if (Sucstatus)
await _servValidatinMsg.Delete(VerificationCode);
2024-04-17 15:49:34 +03:30
2024-04-16 22:56:02 +03:30
return Ok(Sucstatus);
2024-04-16 12:23:29 +03:30
}
else return BadRequest("اطلاعات شما منطبق با سامانه نیست");
}
else return BadRequest("کد احراز صحیح نمی باشد");
2024-04-15 17:16:17 +03:30
}
2024-04-16 22:56:02 +03:30
[HttpDelete("Remove/{ID}")]
[AllowAnonymous]
public async Task<ActionResult<bool>> Remove(int ID)
{
var VerificationCode = await _servValidatinMsg.GetVerificationCode(ID);
await _servValidatinMsg.Delete(VerificationCode);
return NoContent();
}
2024-04-15 17:16:17 +03:30
}
}