129 lines
5.4 KiB
C#
129 lines
5.4 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;
|
|
using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
|
|
|
|
namespace Back.Controllers
|
|
{
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class VerificationController : ControllerBase
|
|
{
|
|
private readonly ServValidatinMsg _servValidatinMsg;
|
|
private readonly GetVerificationValidation _getVerificationValidation;
|
|
private readonly servSendMsg _servSendMsg;
|
|
private readonly servCompany _servCompany;
|
|
private readonly servUser _servUser;
|
|
public VerificationController(ServValidatinMsg servValidatinMsg, GetVerificationValidation getVerificationValidation
|
|
, servCompany servCompany, servSendMsg servSendMsg, servUser servUser)
|
|
{
|
|
_servValidatinMsg = servValidatinMsg;
|
|
_getVerificationValidation = getVerificationValidation;
|
|
_servCompany = servCompany;
|
|
_servSendMsg = servSendMsg;
|
|
_servUser = servUser;
|
|
}
|
|
[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
|
|
});;
|
|
}
|
|
[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
|
|
|
|
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;
|
|
|
|
|
|
case "ForgetPassword":
|
|
var user = await _servUser.ChangePasswordByMobile(_getVerificationValidation.verificationCode.prm, _getVerificationValidation.verificationCode.val);
|
|
_servSendMsg.Authentication(_getVerificationValidation.verificationCode.prm, ID.ToString());
|
|
break;
|
|
|
|
default:
|
|
return BadRequest("این نوع احراز تعریف نشده");
|
|
}
|
|
|
|
return NoContent();
|
|
}
|
|
[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)
|
|
{
|
|
bool Sucstatus = false;
|
|
switch (VerificationCode.Type)
|
|
{
|
|
case "NewTicketNoAuthentication":
|
|
Sucstatus = await _servValidatinMsg.SubmittedTicket(VerificationCode);
|
|
break;
|
|
|
|
case "CompanyRegistration":
|
|
//string UserID = VerificationCode.val;
|
|
Sucstatus = await _servValidatinMsg.SubmittedCompanyRegistration(VerificationCode);
|
|
// return Ok(await _servUser.UserAuthentication(UserID));
|
|
//else return BadRequest();
|
|
break;
|
|
|
|
default:
|
|
return BadRequest("این نوع احراز تعریف نشده");
|
|
}
|
|
|
|
if (Sucstatus)
|
|
await _servValidatinMsg.Delete(VerificationCode);
|
|
|
|
return Ok(Sucstatus);
|
|
}
|
|
else return BadRequest("اطلاعات شما منطبق با سامانه نیست");
|
|
|
|
}
|
|
else return BadRequest("کد احراز صحیح نمی باشد");
|
|
|
|
}
|
|
[HttpDelete("Remove/{ID}")]
|
|
[AllowAnonymous]
|
|
public async Task<ActionResult<bool>> Remove(int ID)
|
|
{
|
|
var VerificationCode = await _servValidatinMsg.GetVerificationCode(ID);
|
|
await _servValidatinMsg.Delete(VerificationCode);
|
|
return NoContent();
|
|
}
|
|
}
|
|
}
|