From f97a42f296201d62147de14b02c749d576ac0ec7 Mon Sep 17 00:00:00 2001 From: "Dario F. Gomez Z" Date: Tue, 7 Nov 2023 08:35:29 -0500 Subject: [PATCH] Ajuste Revision 2 Usuarios --- .../MsUsuarios/Context/ModelContext.cs | 39 ++++++++++- .../MsUsuarios/Context/USUARIOSTEMP.cs | 22 ++++++ .../MsUsuarios/Controllers/AuthController.cs | 1 + .../Controllers/UsuariosTempController.cs | 70 +++++++++++++++++++ .../MsUsuarios/Utils/RabbitMQService.cs | 55 +++++++++------ 5 files changed, 165 insertions(+), 22 deletions(-) create mode 100644 Microservicios/MsUsuarios/Context/USUARIOSTEMP.cs create mode 100644 Microservicios/MsUsuarios/Controllers/UsuariosTempController.cs diff --git a/Microservicios/MsUsuarios/Context/ModelContext.cs b/Microservicios/MsUsuarios/Context/ModelContext.cs index a63317d..ab407c8 100644 --- a/Microservicios/MsUsuarios/Context/ModelContext.cs +++ b/Microservicios/MsUsuarios/Context/ModelContext.cs @@ -22,7 +22,8 @@ namespace MSAdminUsuarios.Context public virtual DbSet PERFILESMs { get; set; } = null!; public virtual DbSet PERFILESPORUSUARIOs { get; set; } = null!; public virtual DbSet USUARIOSMs { get; set; } = null!; - public virtual DbSet CORREOSAREAMS { get; set; } = null!; + public virtual DbSet CORREOSAREAMS { get; set; } = null!; + public virtual DbSet USUARIOSTEMP { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { @@ -48,7 +49,7 @@ namespace MSAdminUsuarios.Context } else { - modelBuilder.HasDefaultSchema("ADMIN"); + modelBuilder.HasDefaultSchema("ADMIN"); } @@ -109,6 +110,40 @@ namespace MSAdminUsuarios.Context }); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.NU_PK_USUTMP) + .HasName("USUARIOSTEMP_PK"); + + entity.ToTable("USUARIOSTEMP"); + + entity.Property(e => e.NU_PK_USUTMP).HasPrecision(10); + + entity.Property(e => e.FE_INICIOACTIVACION_USUTMP).HasColumnType("DATE"); + + entity.Property(e => e.FE_FINACTIVACION_USUTMP).HasColumnType("DATE"); + + entity.Property(e => e.NU_ESTADO_USUTMP).HasPrecision(10); + + entity.Property(e => e.NU_TIPODOC_USUTMP).HasPrecision(10); + + entity.Property(e => e.TX_CORREO_USUTMP).HasMaxLength(200); + + entity.Property(e => e.TX_IDENTIFICACION_USUTMP).HasMaxLength(100); + + entity.Property(e => e.TX_NOMBREPVD_USUTMP).HasMaxLength(1999); + + entity.Property(e => e.TX_PRIMERAPELL_USUTMP).HasMaxLength(200); + + entity.Property(e => e.TX_PRIMERNOM_USUTMP).HasMaxLength(200); + + entity.Property(e => e.TX_SEGUNDOAPELL_USUTMP).HasMaxLength(200); + + entity.Property(e => e.TX_SEGUNDONOM_USUTMP).HasMaxLength(200); + + entity.Property(e => e.TX_TELEFONO_USUTMP).HasMaxLength(100); + }); + OnModelCreatingPartial(modelBuilder); } diff --git a/Microservicios/MsUsuarios/Context/USUARIOSTEMP.cs b/Microservicios/MsUsuarios/Context/USUARIOSTEMP.cs new file mode 100644 index 0000000..8f47b87 --- /dev/null +++ b/Microservicios/MsUsuarios/Context/USUARIOSTEMP.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; + +namespace MSAdminUsuarios.Context +{ + public partial class USUARIOSTEMP + { + public int NU_PK_USUTMP { get; set; } + public int? NU_TIPODOC_USUTMP { get; set; } + public string? TX_IDENTIFICACION_USUTMP { get; set; } + public string? TX_PRIMERNOM_USUTMP { get; set; } + public string? TX_SEGUNDONOM_USUTMP { get; set; } + public string? TX_PRIMERAPELL_USUTMP { get; set; } + public string? TX_SEGUNDOAPELL_USUTMP { get; set; } + public string? TX_NOMBREPVD_USUTMP { get; set; } + public string? TX_CORREO_USUTMP { get; set; } + public string? TX_TELEFONO_USUTMP { get; set; } + public int? NU_ESTADO_USUTMP { get; set; } + public DateTime? FE_INICIOACTIVACION_USUTMP { get; set; } + public DateTime? FE_FINACTIVACION_USUTMP { get; set; } + } +} diff --git a/Microservicios/MsUsuarios/Controllers/AuthController.cs b/Microservicios/MsUsuarios/Controllers/AuthController.cs index e32e902..ad498d8 100644 --- a/Microservicios/MsUsuarios/Controllers/AuthController.cs +++ b/Microservicios/MsUsuarios/Controllers/AuthController.cs @@ -32,6 +32,7 @@ namespace MSAdminUsuarios.Controllers if (login.TX_PASSWORD_USUMS == null) return BadRequest("Es necesario ingresar una contrase�a"); USUARIO? userldap = _context.USUARIOSMs.FirstOrDefault(u => u.TX_LOGINNAME_USUMS == login.TX_LOGINNAME_USUMS); + if (userldap == null) return BadRequest("usuario"); if(userldap.BL_VIENELDAP_USUMS == 1) { bool boolldap = LoginLib.Login(login.TX_LOGINNAME_USUMS, login.TX_PASSWORD_USUMS); diff --git a/Microservicios/MsUsuarios/Controllers/UsuariosTempController.cs b/Microservicios/MsUsuarios/Controllers/UsuariosTempController.cs new file mode 100644 index 0000000..441cb9f --- /dev/null +++ b/Microservicios/MsUsuarios/Controllers/UsuariosTempController.cs @@ -0,0 +1,70 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using MSAdminUsuarios.Context; +using MSAdminUsuarios.Models; + +namespace MSAdminUsuarios.Controllers +{ + [Route("[controller]")] + [ApiController] + public class UsuariosTempController : ControllerBase + { + private readonly ModelContext _context; + private readonly ILogger _logger; + private ErrorModel _errorModel; + + public UsuariosTempController(ModelContext context, ILogger logger) + { + _context = context; + _logger = logger; + _errorModel = new ErrorModel(); + } + + [HttpGet] + public async Task Get() + { + _errorModel = new ErrorModel(); + try + { + List externos = await _context.USUARIOSTEMP.OrderBy(q => q.NU_PK_USUTMP).ToListAsync(); + + return Ok(externos); + } + catch (Exception) + { + _errorModel.error = true; + _errorModel.cuerpo.Add("Error con la base de datos."); + return BadRequest(_errorModel); + } + } + + [HttpPost] + public async Task Post(USUARIOSTEMP nuevo) + { + _errorModel = new ErrorModel(); + try + { + if (nuevo == null) + { + _errorModel.error = true; + _errorModel.cuerpo.Add("No se envió solicitud."); + return Conflict(_errorModel); + } + + _context.USUARIOSTEMP.Add(nuevo); + await _context.SaveChangesAsync(); + + _errorModel.error = false; + _errorModel.cuerpo.Add("Solicitud de usuario temporal guardado correctamente."); + return Ok(_errorModel); + } + catch (Exception) + { + _errorModel.error = true; + _errorModel.cuerpo.Add("Error con la base de datos."); + return BadRequest(_errorModel); + } + } + } +} diff --git a/Microservicios/MsUsuarios/Utils/RabbitMQService.cs b/Microservicios/MsUsuarios/Utils/RabbitMQService.cs index a7db11d..4ccd70e 100644 --- a/Microservicios/MsUsuarios/Utils/RabbitMQService.cs +++ b/Microservicios/MsUsuarios/Utils/RabbitMQService.cs @@ -66,6 +66,12 @@ namespace MSAdminUsuarios.Utils ); } + channel.QueueBind( + queue: $"{exchangeName}.Usuarios", + exchange: exchangeName, + routingKey: $"{exchangeName}.Usuarios.*.*" + ); + return channel; } @@ -74,37 +80,46 @@ namespace MSAdminUsuarios.Utils RabbitMQConfig mqConfig = builder.Configuration.GetSection("RabbitMQConfig").Get(); var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole().AddEventLog()); - //var logger = loggerFactory.CreateLogger("Rabbit2"); - //logger.LogInformation("Inicia Rabbitmq con"); - - ConnectionFactory factory = new() + try { - HostName = mqConfig.HostName, - UserName = mqConfig.UserName, - Password = mqConfig.Password, - }; + //var logger = loggerFactory.CreateLogger("Rabbit2"); + //logger.LogInformation("Inicia Rabbitmq con"); - IConnection connection = factory.CreateConnection(); - IModel channel = connection.CreateModel(); + ConnectionFactory factory = new() + { + HostName = mqConfig.HostName, + UserName = mqConfig.UserName, + Password = mqConfig.Password, + }; - EventingBasicConsumer consumer = new(channel); + IConnection connection = factory.CreateConnection(); + IModel channel = connection.CreateModel(); - consumer.Received += RabbitMQService.ConsumeRabbitMQEvent; + EventingBasicConsumer consumer = new(channel); - List queues = new() + consumer.Received += RabbitMQService.ConsumeRabbitMQEvent; + + List queues = new() { $"{projectName}.PerfilesPorUsuario", $"{projectName}.Usuarios", }; - foreach (var queue in queues) - { - channel.BasicConsume( - queue: queue, - autoAck: false, - consumer: consumer - ); + foreach (var queue in queues) + { + channel.BasicConsume( + queue: queue, + autoAck: false, + consumer: consumer + ); + } } + catch (Exception ex) + { + + Console.WriteLine(ex.Message); + } + }