...
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
using Back.Common.Enums;
|
||||
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 System.Security.Cryptography;
|
||||
|
||||
namespace Back.Controllers
|
||||
{
|
||||
@@ -12,12 +15,42 @@ namespace Back.Controllers
|
||||
[ApiController]
|
||||
public class TicketController : ControllerBase
|
||||
{
|
||||
private readonly MobileValidation _mobilevalidation;
|
||||
private readonly servTicket _servTicket;
|
||||
private readonly ServValidatinMsg _servValidatinMsg;
|
||||
public TicketController(MobileValidation mobilevalidation, servTicket servTicket, ServValidatinMsg servValidatinMsg)
|
||||
{
|
||||
_mobilevalidation = mobilevalidation;
|
||||
_servTicket = servTicket;
|
||||
_servValidatinMsg = servValidatinMsg;
|
||||
}
|
||||
|
||||
[HttpPost("NewTicketNoAuthentication")]
|
||||
[AllowAnonymous]
|
||||
public async Task<ActionResult<int>> NewTicketNoAuthentication(CTicketNoAuthenticationDto item)
|
||||
{
|
||||
return Ok();
|
||||
var resultValidationmodel = await _mobilevalidation.ValidateAsync(item.Mobile);
|
||||
if (!resultValidationmodel.IsValid)
|
||||
return BadRequest(resultValidationmodel.Errors.Select(s => s.ErrorMessage).ToList());
|
||||
|
||||
var pid=await _servTicket.NewPepole(item.FullName,item.Mobile);
|
||||
item.CompanyID = pid.Value.ToString();
|
||||
var Ticket = await _servTicket.NewTicket(item, StatusTicket.unknownPerson);
|
||||
|
||||
var code= await _servValidatinMsg.GenerateCode(new VerificationCode
|
||||
{
|
||||
ID = 0,
|
||||
prm = Ticket.ID.ToString(),
|
||||
val = item.Mobile,
|
||||
Type = "NewTicketNoAuthentication"
|
||||
});
|
||||
|
||||
return Ticket == null ? BadRequest() : Ok(new VerificationCodeDto
|
||||
{
|
||||
prm = Ticket.ID.ToString(),
|
||||
val = item.Mobile,
|
||||
Type = "NewTicketNoAuthentication"
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,8 @@ builder.Services.AddScoped(typeof(IAsyncRepository<>), typeof(RepositoryBase<>))
|
||||
builder.Services.AddScoped<Back.Services.ServBase>();
|
||||
builder.Services.AddScoped<MobileValidation> ();
|
||||
builder.Services.AddScoped<Service.Main>();
|
||||
builder.Services.AddScoped<servTicket > ();
|
||||
builder.Services.AddScoped < ServValidatinMsg>();
|
||||
string origins = "OriginTaxPayer";
|
||||
builder.Services.AddCors(options =>
|
||||
{
|
||||
|
||||
35
Back/Services/ServValidatinMsg.cs
Normal file
35
Back/Services/ServValidatinMsg.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using Back.Data.Contracts;
|
||||
using Back.Data.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Back.Services
|
||||
{
|
||||
public class ServValidatinMsg
|
||||
{
|
||||
private readonly IAsyncRepository<VerificationCode> _verificationCodeRepo;
|
||||
public ServValidatinMsg(IAsyncRepository<VerificationCode> verificationCodeRepo)
|
||||
{
|
||||
_verificationCodeRepo = verificationCodeRepo;
|
||||
}
|
||||
public async Task<VerificationCode> GetCodeByPrm(string Prm)
|
||||
{
|
||||
return await _verificationCodeRepo.Get(w => w.prm == Prm).FirstOrDefaultAsync();
|
||||
|
||||
}
|
||||
public async Task<VerificationCode> GetRegistrationCode(int ID)
|
||||
{
|
||||
return await _verificationCodeRepo.Get(w => w.ID == ID).FirstOrDefaultAsync();
|
||||
}
|
||||
public async Task<int> GenerateCode(VerificationCode code)
|
||||
{
|
||||
code.ID = Random.Shared.Next(1000, 9000);
|
||||
while (await GetRegistrationCode(code.ID) != null)
|
||||
code.ID = Random.Shared.Next(1000, 9000);
|
||||
|
||||
|
||||
await _verificationCodeRepo.AddAsync(code);
|
||||
|
||||
return code.ID;
|
||||
}
|
||||
}
|
||||
}
|
||||
104
Back/Services/servTicket.cs
Normal file
104
Back/Services/servTicket.cs
Normal file
@@ -0,0 +1,104 @@
|
||||
using Back.Common;
|
||||
using Back.Common.Enums;
|
||||
using Back.Data.Contracts;
|
||||
using Back.Data.Models;
|
||||
using Shared.DTOs;
|
||||
|
||||
namespace Back.Services
|
||||
{
|
||||
public class servTicket
|
||||
{
|
||||
private readonly IAsyncRepository<TiceketUnknownPeople> _ticketUnknownPeopleRepo;
|
||||
private readonly IAsyncRepository<Ticket> _ticketRepo;
|
||||
private readonly IAsyncRepository<SubTicket> _subticketRepo;
|
||||
public servTicket(IAsyncRepository<TiceketUnknownPeople> ticketUnknownPeopleRepo
|
||||
,IAsyncRepository<Ticket> ticketRepo
|
||||
,IAsyncRepository<SubTicket> subticketRepo
|
||||
)
|
||||
{
|
||||
_ticketUnknownPeopleRepo = ticketUnknownPeopleRepo;
|
||||
_ticketRepo = ticketRepo;
|
||||
_subticketRepo = subticketRepo;
|
||||
}
|
||||
public async Task<int?> NewPepole(string FullName, string Mobile)
|
||||
{
|
||||
try
|
||||
{
|
||||
var item=await _ticketUnknownPeopleRepo.AddAsync(new TiceketUnknownPeople
|
||||
{
|
||||
FullName = FullName,
|
||||
Mobile = Mobile
|
||||
});
|
||||
//_contextMongodb.InsertItem(new SysLog()
|
||||
//{
|
||||
// TraceIdentifierID = _httpContextAccessor.HttpContext.TraceIdentifier,
|
||||
// Datetime = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
// Method = $"{_httpContextAccessor.HttpContext.Request.Method}/{this.GetType().FullName}/NewPepole",
|
||||
// Value = JsonConvert.SerializeObject(item),
|
||||
// Route = _httpContextAccessor.HttpContext.Request.Path,
|
||||
// Type = "User"
|
||||
//});
|
||||
return item.ID;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//_contextMongodb.InsertItem(new SysLog()
|
||||
//{
|
||||
// TraceIdentifierID = _httpContextAccessor.HttpContext.TraceIdentifier,
|
||||
// Datetime = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
// Method = $"{_httpContextAccessor.HttpContext.Request.Method}/{this.GetType().FullName}/NewPepole",
|
||||
// Value = ex.Message,
|
||||
// Route = _httpContextAccessor.HttpContext.Request.Path,
|
||||
// Type = "catch"
|
||||
//});
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
public async Task<Ticket?> NewTicket(CTicketDto item, StatusTicket status = StatusTicket.Awaitingreview)
|
||||
{
|
||||
try
|
||||
{
|
||||
var ticket=await _ticketRepo.AddAsync(new Ticket
|
||||
{
|
||||
CompanyIDOrMobile = item.CompanyID,
|
||||
CreateDate = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
CreateTime = DateTime.Now.ToString("hh:mm tt"),
|
||||
Title = item.Title,
|
||||
Status = status
|
||||
});
|
||||
await _subticketRepo.AddAsync(new SubTicket
|
||||
{
|
||||
Date = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
Time = DateTime.Now.ToString("hh:mm tt"),
|
||||
TicketID = ticket.ID,
|
||||
Text = item.Text,
|
||||
Type = SideType.Customer
|
||||
});
|
||||
//_contextMongodb.InsertItem(new SysLog()
|
||||
//{
|
||||
// TraceIdentifierID = _httpContextAccessor.HttpContext.TraceIdentifier,
|
||||
// Datetime = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
// Method = $"{_httpContextAccessor.HttpContext.Request.Method}/{this.GetType().FullName}/NewTicket",
|
||||
// Value = JsonConvert.SerializeObject(item),
|
||||
// Route = _httpContextAccessor.HttpContext.Request.Path,
|
||||
// Type = "User"
|
||||
//});
|
||||
return ticket;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//_contextMongodb.InsertItem(new SysLog()
|
||||
//{
|
||||
// TraceIdentifierID = _httpContextAccessor.HttpContext.TraceIdentifier,
|
||||
// Datetime = DateTime.Now.ConvertMiladiToShamsi(),
|
||||
// Method = $"{_httpContextAccessor.HttpContext.Request.Method}/{this.GetType().FullName}/NewTicket",
|
||||
// Value = ex.Message,
|
||||
// Route = _httpContextAccessor.HttpContext.Request.Path,
|
||||
// Type = "catch"
|
||||
//});
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user