Ajuste de temporales
This commit is contained in:
parent
66eccce253
commit
dbedd16820
@ -46,6 +46,7 @@ namespace ApiGateway
|
||||
String.Equals(calledUrl, "/UsuariosTemp") ||
|
||||
String.Equals(calledUrl, "/Auth/TknCambioClave") ||
|
||||
String.Equals(calledUrl, "/Auth/Proveedor") ||
|
||||
String.Equals(calledUrl, "/Auth/RecuperarClave") ||
|
||||
String.Equals(calledUrl, "/Email") ||
|
||||
String.Equals(calledUrl, "/Formularios/Graficas/{rutaGrafica}")
|
||||
)
|
||||
|
@ -37,6 +37,7 @@ namespace MSAdminUsuarios.Context
|
||||
public int? NU_INICIO_PRIMERAVEZ_USUMS { get; set; }
|
||||
public DateTime? FE_INICIOACTIVACION_USUTMP { get; set; }
|
||||
public DateTime? FE_FINACTIVACION_USUTMP { get; set; }
|
||||
public DateTime? FE_RECUPERACLAVE { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -18,5 +18,6 @@ namespace MSAdminUsuarios.Context
|
||||
public int? NU_ESTADO_USUMS { get; set; }
|
||||
public DateTime? FE_INICIOACTIVACION_USUTMP { get; set; }
|
||||
public DateTime? FE_FINACTIVACION_USUTMP { get; set; }
|
||||
public string? TX_UUID_USUMS { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ namespace MSAdminUsuarios.Controllers
|
||||
private readonly ModelContext _context;
|
||||
private readonly Encripter _encript = new();
|
||||
private readonly LDAP _ldap;
|
||||
private readonly ILogger<AuthController> _logger;
|
||||
|
||||
public AuthController(ModelContext context)
|
||||
{
|
||||
@ -28,7 +29,7 @@ namespace MSAdminUsuarios.Controllers
|
||||
});
|
||||
|
||||
var logger = loggerFactory.CreateLogger<LDAP>();
|
||||
|
||||
_logger = loggerFactory.CreateLogger<AuthController>();
|
||||
_ldap = new LDAP(logger);
|
||||
}
|
||||
|
||||
@ -146,11 +147,70 @@ namespace MSAdminUsuarios.Controllers
|
||||
USUARIO? user = _context.USUARIOSMs.FirstOrDefault(u => u.TX_LOGINNAME_USUMS == login.TX_LOGINNAME_USUMS && u.TX_PASSWORD_USUMS == _encript.EncryptPwd(login.TX_PASSWORD_USUMS));
|
||||
if (user == null) return BadRequest(new ResLoginExt("Usuario o contraseña incorrectos", true, userExist.NU_ESTADO_USUMS));
|
||||
|
||||
if (user.NU_ESTADO_USUMS != 1) return BadRequest(new ResLoginExt("Usuario inactivo, bloqueado o eliminado.", true, user.NU_ESTADO_USUMS));
|
||||
//if (user.NU_ESTADO_USUMS == null) return BadRequest(new ResLoginExt("Usuario eliminado.", true, user.NU_ESTADO_USUMS));
|
||||
if (user.NU_ESTADO_USUMS == 0) return BadRequest(new ResLoginExt("Usuario inactivo.", true, user.NU_ESTADO_USUMS));
|
||||
if (user.NU_ESTADO_USUMS == 2) return BadRequest(new ResLoginExt("Usuario bloqueado.", true, user.NU_ESTADO_USUMS));
|
||||
|
||||
if (user.BL_VIENELDAP_USUMS != 0) return BadRequest(new ResLoginExt("No eres un usuario externo.", true, user.NU_ESTADO_USUMS));
|
||||
|
||||
//if (user.FE_RECUPERACLAVE < DateTime.Now) return BadRequest(new ResLoginExt("La recuperación de contraseña esta caducada.", true, user.NU_ESTADO_USUMS));
|
||||
|
||||
//string fechaConvertidaBase = user.FE_RECUPERACLAVE.ToString("dd/MM/yy");
|
||||
if (user.FE_RECUPERACLAVE != null)
|
||||
{
|
||||
DateTime fecha1 = (DateTime)user.FE_RECUPERACLAVE;
|
||||
DateTime fecha2 = DateTime.Now;
|
||||
TimeSpan diferencia = fecha2 - fecha1;
|
||||
if (diferencia.TotalHours > 24)
|
||||
{
|
||||
//Console.WriteLine("La diferencia es de al menos 24 horas.");
|
||||
return BadRequest(new ResLoginExt("La recuperación de contraseña esta caducada.", true, user.NU_ESTADO_USUMS));
|
||||
}
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// Console.WriteLine("La diferencia es menor a 24 horas.");
|
||||
//}
|
||||
|
||||
//string fechaConvertidaBase = user.FE_RECUPERACLAVE.HasValue? user.FE_RECUPERACLAVE.Value.ToString("dd/MM/yy"): "Fecha no disponible";
|
||||
//string fechaConvertidaActual = DateTime.Now.ToString("dd/MM/yy");
|
||||
|
||||
//if (fechaConvertidaBase != null && fechaConvertidaBase != fechaConvertidaActual) return BadRequest(new ResLoginExt("La recuperación de contraseña esta caducada.", true, user.NU_ESTADO_USUMS));
|
||||
|
||||
//this._logger.LogWarning(user.FE_RECUPERACLAVE.ToString());
|
||||
//DateTime fecha1 = user.FE_RECUPERACLAVE;
|
||||
|
||||
//if (fechaConvertidaBase != null && fechaConvertidaBase != fechaConvertidaActual) return BadRequest(new ResLoginExt("La recuperación de contraseña esta caducada.", true, user.NU_ESTADO_USUMS));
|
||||
|
||||
//if (user.FE_RECUPERACLAVE != null) {
|
||||
// ///////////////////////////////////////////////////////
|
||||
// DateTime fechaHoy = DateTime.Now;
|
||||
// int diaDiasAntes = fechaHoy.Day;
|
||||
// int mesDiasAntes = fechaHoy.Month;
|
||||
// int anioDiasAntes = fechaHoy.Year;
|
||||
// int horas = fechaHoy.Hour;
|
||||
// int minutos = fechaHoy.Minute;
|
||||
// int segundos = fechaHoy.Second;
|
||||
// int milisegs = fechaHoy.Millisecond;
|
||||
// ///////////////////////////////////////////////////////
|
||||
// int dia = user.FE_RECUPERACLAVE.Value.Day;
|
||||
// int mes = user.FE_RECUPERACLAVE.Value.Month;
|
||||
// int año = user.FE_RECUPERACLAVE.Value.Year;
|
||||
// int horasSEG = user.FE_RECUPERACLAVE.Value.Hour;
|
||||
// int minutosSEG = user.FE_RECUPERACLAVE.Value.Minute;
|
||||
// int segundosSEG = user.FE_RECUPERACLAVE.Value.Second;
|
||||
// int milisegsSEG = user.FE_RECUPERACLAVE.Value.Millisecond;
|
||||
|
||||
// if (user.FE_RECUPERACLAVE < DateTime.Now) return BadRequest(new ResLoginExt("La recuperación de contraseña esta caducada.", true, user.NU_ESTADO_USUMS));
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
|
||||
//}
|
||||
string token = Token(user);
|
||||
user.FE_RECUPERACLAVE = null;
|
||||
_context.USUARIOSMs.Update(user);
|
||||
_context.SaveChanges();
|
||||
|
||||
return Ok(new ResLoginExt("Bienvenido al sistema.", true, user.NU_ESTADO_USUMS, token, user.NU_INICIO_PRIMERAVEZ_USUMS, user.TX_PKDOC_USUMS, user.BL_VIENELDAP_USUMS));
|
||||
|
||||
@ -162,6 +222,37 @@ namespace MSAdminUsuarios.Controllers
|
||||
|
||||
}
|
||||
|
||||
[HttpPost("RecuperarClave")]
|
||||
public IActionResult RecuperarClave([FromBody] string usuario)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (usuario == null) throw new Exception("Usuario no encontrado");
|
||||
|
||||
if (usuario == null) return BadRequest(new ResLoginExt("Es necesario ingresar un usuario"));
|
||||
|
||||
USUARIO? userExist = _context.USUARIOSMs.FirstOrDefault(u => u.TX_LOGINNAME_USUMS == usuario);
|
||||
if (userExist == null) return BadRequest(new ResLoginExt("Este usuario no existe"));
|
||||
if (userExist.NU_ESTADO_USUMS == 0) return BadRequest(new ResLoginExt("Usuario inactivo.", true, userExist.NU_ESTADO_USUMS));
|
||||
if (userExist.NU_ESTADO_USUMS == 2) return BadRequest(new ResLoginExt("Usuario bloqueado.", true, userExist.NU_ESTADO_USUMS));
|
||||
if (userExist.BL_VIENELDAP_USUMS != 0) return BadRequest(new ResLoginExt("No es un usuario externo.", true, userExist.NU_ESTADO_USUMS));
|
||||
//string token = Token(user);
|
||||
userExist.FE_RECUPERACLAVE = DateTime.Now;
|
||||
|
||||
string RecuperaIdGenerada = AuthController.RecuperaIdGenerada(8);
|
||||
userExist.TX_PASSWORD_USUMS = _encript.EncryptPwd(RecuperaIdGenerada);
|
||||
|
||||
_context.USUARIOSMs.Update(userExist);
|
||||
_context.SaveChanges();
|
||||
|
||||
return Ok(new RecuperarClaveModel("Se enviará un correo para continuar el proceso.", true, userExist.NU_ESTADO_USUMS, userExist.TX_CORREO_USUMS, RecuperaIdGenerada));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return BadRequest(e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPatch("RenovarToken")]
|
||||
public IActionResult RefreshToken([FromBody] string token)
|
||||
{
|
||||
@ -407,6 +498,27 @@ namespace MSAdminUsuarios.Controllers
|
||||
return Encripter.Cypher(token);
|
||||
}
|
||||
|
||||
public static string RecuperaIdGenerada(int length)
|
||||
{
|
||||
// Validar que la longitud sea positiva
|
||||
if (length <= 0)
|
||||
{
|
||||
throw new ArgumentException("La longitud debe ser mayor que 0.");
|
||||
}
|
||||
|
||||
// Crear una instancia de Random
|
||||
Random random = new Random();
|
||||
|
||||
// Generar una cadena aleatoria de números
|
||||
string result = "";
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
result += random.Next(0, 10).ToString(); // Generar un dígito aleatorio
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class LoginModel
|
||||
@ -429,6 +541,7 @@ namespace MSAdminUsuarios.Controllers
|
||||
Primera = _primera;
|
||||
User = _user;
|
||||
Ldap = _ldap;
|
||||
//ClaveRec = _claveRec;
|
||||
}
|
||||
|
||||
public bool Existe { get; set; }
|
||||
@ -440,6 +553,23 @@ namespace MSAdminUsuarios.Controllers
|
||||
public int? Ldap { get; set; }
|
||||
}
|
||||
|
||||
public class RecuperarClaveModel
|
||||
{
|
||||
public RecuperarClaveModel(string _message, bool _exist = false, int? _estado = null, string? _correo = "", string? _claveRec = "")
|
||||
{
|
||||
Message = _message;
|
||||
Existe = _exist;
|
||||
Estado = _estado;
|
||||
Correo = _correo;
|
||||
ClaveRec = _claveRec;
|
||||
}
|
||||
public bool Existe { get; set; }
|
||||
public int? Estado { get; set; }
|
||||
public string Message { get; set; } = null!;
|
||||
public string Correo { get; set; }
|
||||
public string ClaveRec { get; set; }
|
||||
}
|
||||
|
||||
public class CambiarClaveModel
|
||||
{
|
||||
public string User { get; set; }
|
||||
|
@ -266,6 +266,7 @@ namespace MSAdminUsuarios.Controllers
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
|
||||
existe.NU_ESTADO_USUMS = editado.NU_ESTADO_USUMS;
|
||||
existe.TX_PRIMERNOM_USUMS = editado.TX_PRIMERNOM_USUMS;
|
||||
existe.TX_SEGUNDONOM_USUMS = editado.TX_SEGUNDONOM_USUMS;
|
||||
existe.TX_PRIMERAPELL_USUMS = editado.TX_PRIMERAPELL_USUMS;
|
||||
|
@ -2,7 +2,9 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using MSAdminUsuarios.Context;
|
||||
using MSAdminUsuarios.Dto;
|
||||
using MSAdminUsuarios.Models;
|
||||
using Security;
|
||||
|
||||
namespace MSAdminUsuarios.Controllers
|
||||
{
|
||||
@ -13,6 +15,7 @@ namespace MSAdminUsuarios.Controllers
|
||||
private readonly ModelContext _context;
|
||||
private readonly ILogger<UsuariosTempController> _logger;
|
||||
private ErrorModel _errorModel;
|
||||
private readonly Encripter _encript = new();
|
||||
|
||||
public UsuariosTempController(ModelContext context, ILogger<UsuariosTempController> logger)
|
||||
{
|
||||
@ -52,12 +55,97 @@ namespace MSAdminUsuarios.Controllers
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
|
||||
_context.USUARIOSTEMP.Add(nuevo);
|
||||
await _context.SaveChangesAsync();
|
||||
//USUARIOSTEMP? existe = await _context.USUARIOSTEMP.FirstOrDefaultAsync(ut => ut.NU_PK_USUTMP == nuevo.NU_PK_USUTMP);
|
||||
//if (existe == null)
|
||||
|
||||
_errorModel.error = false;
|
||||
_errorModel.cuerpo.Add("Solicitud de usuario temporal guardado correctamente.");
|
||||
return Ok(_errorModel);
|
||||
if (nuevo.TX_UUID_USUMS == null)
|
||||
{
|
||||
USUARIOSTEMP? existeEmailTemp = await _context.USUARIOSTEMP.FirstOrDefaultAsync(ut => ut.TX_CORREO_USUMS == nuevo.TX_CORREO_USUMS);
|
||||
if (existeEmailTemp != null)
|
||||
{
|
||||
if (existeEmailTemp.NU_ESTADO_USUMS == 0)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario inactivo con ese correo electronico.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
else
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario activo con ese correo electronico.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
}
|
||||
|
||||
USUARIOSTEMP? existe = await _context.USUARIOSTEMP.FirstOrDefaultAsync(ut => ut.NU_TIPODOC_USUMS == nuevo.NU_TIPODOC_USUMS && ut.TX_PKDOC_USUMS == nuevo.TX_PKDOC_USUMS);
|
||||
if (existe != null) {
|
||||
if (existe.NU_ESTADO_USUMS == 0)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario inactivo con ese número de documento.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
else
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario activo con ese número de documento.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Guid uuid = Guid.NewGuid();
|
||||
var UUID = uuid.ToString();
|
||||
nuevo.TX_UUID_USUMS = UUID;
|
||||
|
||||
_context.USUARIOSTEMP.Add(nuevo);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
_errorModel.error = false;
|
||||
_errorModel.cuerpo.Add("Solicitud de usuario temporal creada correctamente.");
|
||||
return Ok(_errorModel);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
USUARIOSTEMP? existe = _context.USUARIOSTEMP.FirstOrDefault(ut => ut.TX_UUID_USUMS == nuevo.TX_UUID_USUMS);
|
||||
if (existe == null)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Sin usuario no existe.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
|
||||
existe.NU_TIPODOC_USUMS = nuevo.NU_TIPODOC_USUMS;
|
||||
existe.TX_PRIMERNOM_USUMS = nuevo.TX_PRIMERNOM_USUMS;
|
||||
existe.TX_SEGUNDONOM_USUMS = nuevo.TX_SEGUNDONOM_USUMS;
|
||||
existe.TX_PRIMERAPELL_USUMS = nuevo.TX_PRIMERAPELL_USUMS;
|
||||
existe.TX_SEGUNDOAPELL_USUMS = nuevo.TX_SEGUNDOAPELL_USUMS;
|
||||
//existe.TX_CELULAR_USUMS = nuevo.TX_CELULAR_USUMS;
|
||||
existe.TX_TELEFONO_USUMS = nuevo.TX_TELEFONO_USUMS;
|
||||
existe.TX_CORREO_USUMS = nuevo.TX_CORREO_USUMS;
|
||||
//existe.TX_DIRECCION_USUMS = nuevo.TX_DIRECCION_USUMS;
|
||||
//existe.BL_PERTENCEIPS_USUMS = nuevo.BL_PERTENCEIPS_USUMS;
|
||||
existe.TX_NOMBRE_PVD = nuevo.TX_NOMBRE_PVD;
|
||||
//existe.BL_VIENELDAP_USUMS = nuevo.BL_VIENELDAP_USUMS;
|
||||
//existe.NU_GRUPO_USUMS = nuevo.NU_GRUPO_USUMS;
|
||||
//existe.NU_CARGO_USUMS = nuevo.NU_CARGO_USUMS;
|
||||
//existe.NU_MODALIDADCTT_USUMS = nuevo.NU_MODALIDADCTT_USUMS;
|
||||
//existe.TX_SEDES_USUMS = nuevo.TX_SEDES_USUMS;
|
||||
//existe.NU_BLOQUEO_USUMS = nuevo.NU_BLOQUEO_USUMS;
|
||||
//existe.NU_TIPOUSUARIO_USUMS = nuevo.NU_TIPOUSUARIO_USUMS;
|
||||
//existe.TX_REGPROF_MDC = nuevo.TX_REGPROF_MDC;
|
||||
existe.NU_ESTADO_USUMS = 1;
|
||||
existe.FE_INICIOACTIVACION_USUTMP = nuevo.FE_INICIOACTIVACION_USUTMP;
|
||||
existe.FE_FINACTIVACION_USUTMP = nuevo.FE_FINACTIVACION_USUTMP;
|
||||
|
||||
_context.USUARIOSTEMP.Update(existe);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
_errorModel.error = false;
|
||||
_errorModel.cuerpo.Add("Solicitud de usuario temporal actualizada correctamente.");
|
||||
return Ok(_errorModel);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
@ -102,5 +190,267 @@ namespace MSAdminUsuarios.Controllers
|
||||
return BadRequest(_errorModel);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost("UsuarioPerfilesTemp")]
|
||||
public async Task<IActionResult> PostUsuarioPerfilesTemp(UsuarioPerfilesDTO nuevo)
|
||||
{
|
||||
ErrorModel _errorModel = new ErrorModel();
|
||||
using (var transaccion = _context.Database.BeginTransaction())
|
||||
{
|
||||
try
|
||||
{
|
||||
if (nuevo == null)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Sin datos a guardar.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
|
||||
transaccion.CreateSavepoint("InicioCreacionUsuarioPerfiles");
|
||||
|
||||
if (nuevo.usuario == null)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Sin usuario a guardar.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
|
||||
if (nuevo.usuario.TX_CORREO_USUMS == null && nuevo.usuario.TX_LOGINNAME_USUMS == null)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Indique algún correo.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
|
||||
if (nuevo.usuario.TX_UUID_USUMS == null)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Temporal sin codigo.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
else
|
||||
{
|
||||
USUARIO? existeUUID = _context.USUARIOSMs.FirstOrDefault(usu => usu.TX_UUID_USUMS == nuevo.usuario.TX_UUID_USUMS);
|
||||
if (existeUUID == null)
|
||||
{
|
||||
USUARIO? existeEmail = await _context.USUARIOSMs.FirstOrDefaultAsync(usu => usu.TX_CORREO_USUMS == nuevo.usuario.TX_CORREO_USUMS);
|
||||
if (existeEmail != null)
|
||||
{
|
||||
if (existeEmail.NU_ESTADO_USUMS == 0)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario inactivo con ese correo electronico.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
else if (existeEmail.NU_ESTADO_USUMS == 1)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario activo con ese correo electronico.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
else if (existeEmail.NU_ESTADO_USUMS == 2)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario bloqueado con ese correo electronico.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
}
|
||||
|
||||
USUARIO? existeDoc = await _context.USUARIOSMs.FirstOrDefaultAsync(usu => usu.NU_TIPODOC_USUMS == nuevo.usuario.NU_TIPODOC_USUMS && usu.TX_PKDOC_USUMS == nuevo.usuario.TX_PKDOC_USUMS);
|
||||
if (existeDoc != null)
|
||||
{
|
||||
if (existeDoc.NU_ESTADO_USUMS == 0)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario inactivo con ese número de documento.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
else if (existeDoc.NU_ESTADO_USUMS == 1)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario activo con ese número de documento.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
else if (existeDoc.NU_ESTADO_USUMS == 2)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario activo con ese número de documento.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
}
|
||||
//_errorModel.error = true;
|
||||
//_errorModel.cuerpo.Add("Sin usuario no existe.");
|
||||
//return Conflict(_errorModel);
|
||||
USUARIOSTEMP? existeTemp = _context.USUARIOSTEMP.FirstOrDefault(ut => ut.TX_PKDOC_USUMS == nuevo.usuario.TX_PKDOC_USUMS);
|
||||
if (existeTemp != null)
|
||||
{
|
||||
if (nuevo.usuario.TX_PASSWORD_USUMS == null)
|
||||
{
|
||||
nuevo.usuario.TX_PASSWORD_USUMS = nuevo.usuario.TX_PKDOC_USUMS;
|
||||
}
|
||||
|
||||
if (nuevo.usuario.TX_PASSWORD_USUMS != null)
|
||||
{
|
||||
nuevo.usuario.TX_PASSWORD_USUMS = _encript.EncryptPwd(nuevo.usuario.TX_PASSWORD_USUMS);
|
||||
}
|
||||
|
||||
if (nuevo.usuario.TX_SEDES_USUMS == null || nuevo.usuario.TX_SEDES_USUMS.Length == 0)
|
||||
{
|
||||
nuevo.usuario.TX_SEDES_USUMS = "[0]";
|
||||
}
|
||||
|
||||
nuevo.usuario.NU_INICIO_PRIMERAVEZ_USUMS = 0;
|
||||
nuevo.usuario.BL_VIENELDAP_USUMS = 0;
|
||||
nuevo.usuario.TX_UUID_USUMS = existeTemp.TX_UUID_USUMS;
|
||||
nuevo.usuario.TX_LOGINNAME_USUMS = nuevo.usuario.TX_CORREO_USUMS;
|
||||
//nuevo.usuario.TX_PASSWORD_USUMS = _encript.EncryptPwd(nuevo.usuario.TX_PKDOC_USUMS!);
|
||||
|
||||
//if (nuevo.usuario.TX_PASSWORD_USUMS == null || nuevo.usuario.TX_PASSWORD_USUMS == "")
|
||||
//{
|
||||
// nuevo.usuario.TX_PASSWORD_USUMS = _encript.EncryptPwd(nuevo.usuario.TX_PKDOC_USUMS!);
|
||||
//}
|
||||
|
||||
_context.USUARIOSMs.Add(nuevo.usuario);
|
||||
await _context.SaveChangesAsync();
|
||||
//_errorModel.cuerpo.Add("Usuario Temporal creado correctamente");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
USUARIO? existeEmail = await _context.USUARIOSMs.FirstOrDefaultAsync(usu => usu.TX_CORREO_USUMS == nuevo.usuario.TX_CORREO_USUMS && usu.TX_UUID_USUMS != nuevo.usuario.TX_UUID_USUMS);
|
||||
if (existeEmail != null)
|
||||
{
|
||||
if (existeEmail.NU_ESTADO_USUMS == 0)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario inactivo con ese correo electronico.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
else if (existeEmail.NU_ESTADO_USUMS == 1)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario activo con ese correo electronico.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
else if (existeEmail.NU_ESTADO_USUMS == 2)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario bloqueado con ese correo electronico.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
}
|
||||
|
||||
USUARIO? existeDoc = await _context.USUARIOSMs.FirstOrDefaultAsync(usu => usu.NU_TIPODOC_USUMS == nuevo.usuario.NU_TIPODOC_USUMS && usu.TX_PKDOC_USUMS == nuevo.usuario.TX_PKDOC_USUMS && usu.TX_UUID_USUMS != nuevo.usuario.TX_UUID_USUMS);
|
||||
if (existeDoc != null)
|
||||
{
|
||||
if (existeDoc.NU_ESTADO_USUMS == 0)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario inactivo con ese número de documento.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
else if (existeDoc.NU_ESTADO_USUMS == 1)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario activo con ese número de documento.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
else if (existeDoc.NU_ESTADO_USUMS == 2)
|
||||
{
|
||||
_errorModel.error = true;
|
||||
_errorModel.cuerpo.Add("Ya existe un usuario activo con ese número de documento.");
|
||||
return Conflict(_errorModel);
|
||||
}
|
||||
}
|
||||
|
||||
existeUUID.NU_TIPODOC_USUMS = nuevo.usuario.NU_TIPODOC_USUMS;
|
||||
existeUUID.TX_PRIMERNOM_USUMS = nuevo.usuario.TX_PRIMERNOM_USUMS;
|
||||
existeUUID.TX_SEGUNDONOM_USUMS = nuevo.usuario.TX_SEGUNDONOM_USUMS;
|
||||
existeUUID.TX_PRIMERAPELL_USUMS = nuevo.usuario.TX_PRIMERAPELL_USUMS;
|
||||
existeUUID.TX_SEGUNDOAPELL_USUMS = nuevo.usuario.TX_SEGUNDOAPELL_USUMS;
|
||||
//existeUUID.TX_CELULAR_USUMS = nuevo.usuario.TX_CELULAR_USUMS;
|
||||
existeUUID.TX_TELEFONO_USUMS = nuevo.usuario.TX_TELEFONO_USUMS;
|
||||
existeUUID.TX_CORREO_USUMS = nuevo.usuario.TX_CORREO_USUMS;
|
||||
//existeUUID.TX_DIRECCION_USUMS = nuevo.usuario.TX_DIRECCION_USUMS;
|
||||
//existeUUID.BL_PERTENCEIPS_USUMS = nuevo.usuario.BL_PERTENCEIPS_USUMS;
|
||||
existeUUID.TX_NOMBRE_PVD = nuevo.usuario.TX_NOMBRE_PVD;
|
||||
//existeUUID.BL_VIENELDAP_USUMS = nuevo.usuario.BL_VIENELDAP_USUMS;
|
||||
//existeUUID.NU_GRUPO_USUMS = nuevo.usuario.NU_GRUPO_USUMS;
|
||||
//existeUUID.NU_CARGO_USUMS = nuevo.usuario.NU_CARGO_USUMS;
|
||||
//existeUUID.NU_MODALIDADCTT_USUMS = nuevo.usuario.NU_MODALIDADCTT_USUMS;
|
||||
//existeUUID.TX_SEDES_USUMS = nuevo.usuario.TX_SEDES_USUMS;
|
||||
//existeUUID.NU_BLOQUEO_USUMS = nuevo.usuario.NU_BLOQUEO_USUMS;
|
||||
//existeUUID.NU_TIPOUSUARIO_USUMS = nuevo.usuario.NU_TIPOUSUARIO_USUMS;
|
||||
//existeUUID.TX_REGPROF_MDC = nuevo.usuario.TX_REGPROF_MDC;
|
||||
existeUUID.NU_ESTADO_USUMS = nuevo.usuario.NU_ESTADO_USUMS;
|
||||
existeUUID.FE_INICIOACTIVACION_USUTMP = nuevo.usuario.FE_INICIOACTIVACION_USUTMP;
|
||||
existeUUID.FE_FINACTIVACION_USUTMP = nuevo.usuario.FE_FINACTIVACION_USUTMP;
|
||||
|
||||
if (existeUUID.TX_PASSWORD_USUMS == null || existeUUID.TX_PASSWORD_USUMS == "")
|
||||
{
|
||||
existeUUID.TX_PASSWORD_USUMS = _encript.EncryptPwd(nuevo.usuario.TX_PKDOC_USUMS!);
|
||||
}
|
||||
|
||||
_context.USUARIOSMs.Update(existeUUID);
|
||||
await _context.SaveChangesAsync();
|
||||
//_errorModel.cuerpo.Add("Usuario Temporal Actualizado correctamente");
|
||||
}
|
||||
}
|
||||
|
||||
USUARIO? creado = await _context.USUARIOSMs.FirstOrDefaultAsync(us => us.TX_UUID_USUMS == nuevo.usuario.TX_UUID_USUMS);
|
||||
|
||||
if (nuevo.perfiles != null && creado != null)
|
||||
{
|
||||
// Se cambia a estado 0 todos los perfiles por usuario existentes
|
||||
var existe_plfxusu = _context.PERFILESPORUSUARIOs.Where(x => x.BL_ESTADO_PFLXUSU == 1 && x.TX_UUID_USUMS == creado.TX_UUID_USUMS).ToList();
|
||||
|
||||
foreach (var pu in existe_plfxusu)
|
||||
{
|
||||
pu.BL_ESTADO_PFLXUSU = 0;
|
||||
}
|
||||
_context.PERFILESPORUSUARIOs.UpdateRange(existe_plfxusu);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
foreach (PERFILPORUSUARIO pxu in nuevo.perfiles)
|
||||
{
|
||||
if (pxu != null)
|
||||
{
|
||||
PERFILPORUSUARIO? existe = _context.PERFILESPORUSUARIOs.FirstOrDefault(pu => pu.TX_UUID_PFL == pxu.TX_UUID_PFL && pu.TX_UUID_USUMS == pxu.TX_UUID_USUMS);
|
||||
if (existe != null)
|
||||
{
|
||||
existe.BL_ESTADO_PFLXUSU = 1;
|
||||
_context.Update(existe);
|
||||
await _context.SaveChangesAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
pxu.BL_ESTADO_PFLXUSU = 1;
|
||||
pxu.TX_UUID_USUMS = nuevo.usuario.TX_UUID_USUMS;
|
||||
_context.PERFILESPORUSUARIOs.Add(pxu);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*List<PERFILPORUSUARIO> perUsuEliminiado = _context.PERFILESPORUSUARIOs.Where(pu => pu.TX_UUID_USUMS == creado.TX_UUID_USUMS && pu.BL_ESTADO_PFLXUSU == 0).ToList();
|
||||
_context.PERFILESPORUSUARIOs.RemoveRange(perUsuEliminiado);
|
||||
await _context.SaveChangesAsync();*/
|
||||
|
||||
}
|
||||
|
||||
transaccion.Commit();
|
||||
|
||||
_errorModel.error = false;
|
||||
_errorModel.cuerpo.Add("Proceso realizado correctamente");
|
||||
return Ok(_errorModel);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
transaccion.RollbackToSavepoint("InicioCreacionUsuarioPerfiles");
|
||||
return BadRequest(e.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user