From f0050c489865d72ea5db4c23739c55422ec97270 Mon Sep 17 00:00:00 2001 From: Luis Martinez Date: Tue, 21 Mar 2023 18:55:21 -0500 Subject: [PATCH] Implementacion RabbitMQ --- .../MsUsuarios/Context/ModelContext.cs | 21 +- .../PerfilesPorUsuarioController.cs | 192 ++++++---------- .../Controllers/UsuariosController.cs | 45 +--- .../MsUsuarios/MSAdminUsuarios.csproj | 8 + .../MsUsuarios/Models/RabbitMQConfig.cs | 21 ++ Microservicios/MsUsuarios/Program.cs | 79 ++++++- .../MsUsuarios/Utils/RabbitMQService.cs | 207 ++++++++++++++++++ .../MsUsuarios/appsettings.Development.json | 4 - Microservicios/MsUsuarios/appsettings.json | 4 - 9 files changed, 404 insertions(+), 177 deletions(-) create mode 100644 Microservicios/MsUsuarios/Models/RabbitMQConfig.cs create mode 100644 Microservicios/MsUsuarios/Utils/RabbitMQService.cs diff --git a/Microservicios/MsUsuarios/Context/ModelContext.cs b/Microservicios/MsUsuarios/Context/ModelContext.cs index 445b168..95cb594 100644 --- a/Microservicios/MsUsuarios/Context/ModelContext.cs +++ b/Microservicios/MsUsuarios/Context/ModelContext.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata; @@ -27,13 +28,29 @@ namespace MSAdminUsuarios.Context { if (!optionsBuilder.IsConfigured) { + //! Requerido! para instanciar ModelContext sin injeccion + var config = new ConfigurationBuilder() + .SetBasePath(AppDomain.CurrentDomain.BaseDirectory) + .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) + .AddJsonFile($"appsettings.Development.json", optional: true, reloadOnChange: true) + .Build(); + + var ConString = config.GetSection("ConnectionStrings:ConString").Get(); + optionsBuilder.UseOracle(ConString); } } protected override void OnModelCreating(ModelBuilder modelBuilder) { - //modelBuilder.HasDefaultSchema("HIMSCAP"); // => AFQ - modelBuilder.HasDefaultSchema("ADMIN"); + if (Debugger.IsAttached) + { + modelBuilder.HasDefaultSchema("HIMSCAP"); // => AFQ + } + else + { + modelBuilder.HasDefaultSchema("ADMIN"); + } + modelBuilder.Entity(entity => { diff --git a/Microservicios/MsUsuarios/Controllers/PerfilesPorUsuarioController.cs b/Microservicios/MsUsuarios/Controllers/PerfilesPorUsuarioController.cs index 03e88dd..98e1a3b 100644 --- a/Microservicios/MsUsuarios/Controllers/PerfilesPorUsuarioController.cs +++ b/Microservicios/MsUsuarios/Controllers/PerfilesPorUsuarioController.cs @@ -6,6 +6,7 @@ using System.Data.SqlClient; using System.Linq; using System.Transactions; using Microsoft.EntityFrameworkCore.Storage; +using RabbitMQ.Client; namespace MSAdminUsuarios.Controllers { @@ -14,14 +15,12 @@ namespace MSAdminUsuarios.Controllers public class PerfilesPorUsuarioController : ControllerBase { private readonly ModelContext _context; - - //public PerfilesPorUsuarioController() - //{ - //} + //private readonly IModel _channel; public PerfilesPorUsuarioController(ModelContext context) { _context = context; + //_channel = channel; } [HttpGet] @@ -44,148 +43,87 @@ namespace MSAdminUsuarios.Controllers [HttpPost] public async Task GuardarPerfilesPorUsuario(PERFILPORUSUARIO[] guardar) { - using var dbContextTransaction = _context.Database.BeginTransaction(); - List error = new(); //Inicializamos variable para guardar errores - try + using (var dbContextTransaction = _context.Database.BeginTransaction()) { - //var error = await GuardarPerfiles(guardar, _context); - - var count = 0; - - // 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_FKDOC_USUMS == guardar[0].TX_FKDOC_USUMS).ToList(); - - foreach (var cu in existe_plfxusu) + List error = new(); //Inicializamos variable para guardar errores + try { - cu.BL_ESTADO_PFLXUSU = 0; - _context.PERFILESPORUSUARIOs.Update(cu); - await _context.SaveChangesAsync(); - } + //var error = await GuardarPerfiles(guardar, _context); - foreach (var pxu in guardar) - { - count++; - //Se comprueba existencia de cada pxu en base de datos - var existe_pxu = (from dm in _context.PERFILESPORUSUARIOs - where dm.NU_FK_PFL == pxu.NU_FK_PFL - && dm.TX_FKDOC_USUMS == pxu.TX_FKDOC_USUMS - select dm).ToList(); + var count = 0; - if (existe_pxu.Count() > 0) + // 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_FKDOC_USUMS == guardar[0].TX_FKDOC_USUMS).ToList(); + + foreach (var cu in existe_plfxusu) { - //Si existe activamos estado 1 del perfil - existe_pxu[0].BL_ESTADO_PFLXUSU = 1; - _context.Update(existe_pxu[0]); + cu.BL_ESTADO_PFLXUSU = 0; + _context.PERFILESPORUSUARIOs.Update(cu); await _context.SaveChangesAsync(); - continue; } - else + + foreach (var pxu in guardar) { - if (pxu == null) + count++; + //Se comprueba existencia de cada pxu en base de datos + var existe_pxu = (from dm in _context.PERFILESPORUSUARIOs + where dm.NU_FK_PFL == pxu.NU_FK_PFL + && dm.TX_FKDOC_USUMS == pxu.TX_FKDOC_USUMS + select dm).ToList(); + + if (existe_pxu.Count() > 0) { - error.Add($"Perfil por usuario #{count} sin valores"); + //Si existe activamos estado 1 del perfil + existe_pxu[0].BL_ESTADO_PFLXUSU = 1; + _context.Update(existe_pxu[0]); + await _context.SaveChangesAsync(); continue; } + else + { + if (pxu == null) + { + error.Add($"Perfil por usuario #{count} sin valores"); + continue; + } - pxu.BL_ESTADO_PFLXUSU = 1; - _context.PERFILESPORUSUARIOs.Add(pxu); - await _context.SaveChangesAsync(); + pxu.BL_ESTADO_PFLXUSU = 1; + _context.PERFILESPORUSUARIOs.Add(pxu); + await _context.SaveChangesAsync(); + } } + + dbContextTransaction.Commit(); + + List all = new List(); + + all.Add($"Total registros: {guardar.Count().ToString()}"); + all.Add($"Exitosos: {(guardar.Count() - error.Count()).ToString()}"); + all.Add($"Erroneos: {error.Count().ToString()}"); + + var flag_r = 0; + foreach (var r in error) + { + flag_r++; + all.Add($"Error #{flag_r}: {r}"); + } + + if (error.Count() > 0) + { + return Conflict(all.ToList()); + } + return Ok(); } - - dbContextTransaction.Commit(); - - List all = new List(); - - all.Add($"Total registros: {guardar.Count().ToString()}"); - all.Add($"Exitosos: {(guardar.Count() - error.Count()).ToString()}"); - all.Add($"Erroneos: {error.Count().ToString()}"); - - var flag_r = 0; - foreach (var r in error) + catch (Exception ex) { - flag_r++; - all.Add($"Error #{flag_r}: {r}"); + //hacemos rollback si hay excepción + dbContextTransaction.Rollback(); + return BadRequest(ex.Message); } - if (error.Count() > 0) - { - return Conflict(all.ToList()); - } - return Ok(); - } - catch (Exception ex) - { - //hacemos rollback si hay excepción - dbContextTransaction.Rollback(); - return BadRequest(ex.Message); - } + }; } - // Eliminado 19/03/23, RabbitMQ lo controla - //[ApiExplorerSettings(IgnoreApi = true)] - //[NonAction] - //public async Task> GuardarPerfiles(PERFILPORUSUARIO[] guardar, ModelContext context) - //{ - // //using var transactionScope = new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromSeconds(60)); - // try - // { - // List error = new(); //Inicializamos variable para guardar errores - // var count = 0; - - // // 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_FKDOC_USUMS == guardar[0].TX_FKDOC_USUMS).ToList(); - - // foreach (var cu in existe_plfxusu) - // { - // cu.BL_ESTADO_PFLXUSU = 0; - // context.PERFILESPORUSUARIOs.Update(cu); - // await context.SaveChangesAsync(); - // } - - // foreach (var pxu in guardar) - // { - // count++; - // //Se comprueba existencia de cada pxu en base de datos - // var existe_pxu = (from dm in context.PERFILESPORUSUARIOs - // where dm.NU_FK_PFL == pxu.NU_FK_PFL - // && dm.TX_FKDOC_USUMS == pxu.TX_FKDOC_USUMS - // select dm).ToList(); - - // if (existe_pxu.Count() > 0) - // { - // //Si existe activamos estado 1 del perfil - // existe_pxu[0].BL_ESTADO_PFLXUSU = 1; - // context.Update(existe_pxu[0]); - // await context.SaveChangesAsync(); - // continue; - // } - // else - // { - // if (pxu == null) - // { - // error.Add($"Perfil por usuario #{count} sin valores"); - // continue; - // } - - // pxu.BL_ESTADO_PFLXUSU = 1; - // context.PERFILESPORUSUARIOs.Add(pxu); - // await context.SaveChangesAsync(); - // } - // } - // //transactionScope.Complete(); - // return error; - - // } - // catch (Exception) - // { - // //transactionScope.Dispose(); - // throw; - // } - - - //} - } diff --git a/Microservicios/MsUsuarios/Controllers/UsuariosController.cs b/Microservicios/MsUsuarios/Controllers/UsuariosController.cs index 94d60d2..2525b76 100644 --- a/Microservicios/MsUsuarios/Controllers/UsuariosController.cs +++ b/Microservicios/MsUsuarios/Controllers/UsuariosController.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Components.Forms; using Microsoft.EntityFrameworkCore; using System.Linq; using Microsoft.IdentityModel.Tokens; +using RabbitMQ.Client; namespace MSAdminUsuarios.Controllers { @@ -16,11 +17,18 @@ namespace MSAdminUsuarios.Controllers { private readonly ModelContext _context; private readonly Encripter _encript = new(); + //private readonly IModel _channel; public UsuariosController(ModelContext context) { _context = context; } + //public UsuariosController(ModelContext context, IModel channel) + //{ + // _context = context; + // _channel = channel; + //} + [HttpPost("UserBene")] public async Task PostUserBeneficiario(string TX_IDENTIFICACION_AFIL) @@ -65,13 +73,13 @@ namespace MSAdminUsuarios.Controllers { var consulta = _context.USUARIOSMs.FirstOrDefault(x => x.TX_PKDOC_USUMS == TX_PKDOC_USUMS); - var ininame = consulta.TX_PRIMERNOM_USUMS.ToCharArray(); - var iniape = consulta.TX_PRIMERAPELL_USUMS.ToCharArray(); + var ininame = consulta.TX_PRIMERNOM_USUMS?.ToCharArray(); + var iniape = consulta.TX_PRIMERAPELL_USUMS?.ToCharArray(); NameObject nombreObjeto = new NameObject() { - iniciales = ininame[0].ToString() + iniape[0].ToString(), - nombre = consulta.TX_PRIMERNOM_USUMS.ToString() + " " + consulta.TX_PRIMERAPELL_USUMS.ToString(), + iniciales = ininame?[0].ToString() + iniape?[0].ToString(), + nombre = consulta.TX_PRIMERNOM_USUMS?.ToString() + " " + consulta.TX_PRIMERAPELL_USUMS?.ToString(), pk = consulta.NU_PK_USUMS, }; @@ -196,35 +204,6 @@ namespace MSAdminUsuarios.Controllers _context.USUARIOSMs.Add(usuario); await _context.SaveChangesAsync(); - // Perfil quemado de invitado cuando se crea un usuario desde Integrantes Comité - // Calidad (MsProgramacionComite) - var esIntegranteCTC = Request.Headers.FirstOrDefault(h => h.Key == "Comite").Value; - - if (String.IsNullOrEmpty(esIntegranteCTC) == false && esIntegranteCTC.Contains("true")) - { - usuario.NU_TIPODOC_USUMS = 0; - usuario.NU_ESTADO_USUMS = 1; - var perfil = new List - { - new PERFILPORUSUARIO() - { - NU_PK_PFLXUSU = -1, - NU_FK_PFL = 103, // QUEMADO! - BL_ESTADO_PFLXUSU = 1, - TX_FKDOC_USUMS = usuario.TX_PKDOC_USUMS - } - }; - - var ctrl = new PerfilesPorUsuarioController(_context); - var errors = await ctrl.GuardarPerfiles(perfil.ToArray(), _context); - - if(errors != null && errors.Count > 0) - { - throw new Exception(); - } - - } - dbContextTransaction.Commit(); return Ok(); } diff --git a/Microservicios/MsUsuarios/MSAdminUsuarios.csproj b/Microservicios/MsUsuarios/MSAdminUsuarios.csproj index 37906ce..f58f1e9 100644 --- a/Microservicios/MsUsuarios/MSAdminUsuarios.csproj +++ b/Microservicios/MsUsuarios/MSAdminUsuarios.csproj @@ -13,7 +13,9 @@ runtime; build; native; contentfiles; analyzers; buildtransitive + + @@ -22,4 +24,10 @@ + + + PreserveNewest + + + diff --git a/Microservicios/MsUsuarios/Models/RabbitMQConfig.cs b/Microservicios/MsUsuarios/Models/RabbitMQConfig.cs new file mode 100644 index 0000000..dedd8df --- /dev/null +++ b/Microservicios/MsUsuarios/Models/RabbitMQConfig.cs @@ -0,0 +1,21 @@ +using System.Diagnostics; + +namespace MSAdminUsuarios.Models +{ + public class RabbitMQConfig + { + public string HostName { get; set; } = null!; + public string UserName { get; set; } = null!; + public string Password { get; set; } = null!; + + public override string ToString() + { + if(Debugger.IsAttached) { + return ($"HostName: {HostName},\n " + + $"UserName: {UserName},\n" + + $"Password: {Password}"); + } + return ""; + } + } +} diff --git a/Microservicios/MsUsuarios/Program.cs b/Microservicios/MsUsuarios/Program.cs index aa414b1..071b1c3 100644 --- a/Microservicios/MsUsuarios/Program.cs +++ b/Microservicios/MsUsuarios/Program.cs @@ -1,30 +1,86 @@ using MSAdminUsuarios.Context; using Microsoft.EntityFrameworkCore; using Security; +using System.Reflection; +using MSAdminUsuarios.Models; +using Microsoft.Extensions.Options; +using RabbitMQ.Client; +using MSAdminUsuarios.Utils; +using RabbitMQ.Client.Events; var builder = WebApplication.CreateBuilder(args); -// Add services to the container. +var config = new ConfigurationBuilder() + .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) + .AddJsonFile($"appsettings.Development.json", optional: true, reloadOnChange: true); + +// Add services to the container. builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); + +#region Logging +// Add logging configuration +builder.Logging.ClearProviders(); +builder.Logging.AddConsole(); +builder.Logging.AddDebug(); + +var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole().AddEventLog()); + +#warning Cuidado! NO cambiar nombre del proyecto! 19/03/23 -LM +string projectName = Assembly.GetEntryAssembly()?.GetName().Name ?? "MSAdminUsuarios"; +var logger = loggerFactory.CreateLogger(projectName); +#endregion + +#region Config: Base de Datos // Cadena de Conexion a Bases de Datos -// var connectionString = builder.Configuration.GetConnectionString("DBPrueba"); -// var connectionString = builder.Configuration.GetConnectionString("DBProd"); -var connectionString = builder.Configuration.GetConnectionString("DBUnisalud"); +var ConString = builder.Configuration.GetSection("ConnectionStrings:ConString").Get(); // Configuración del DbContext builder.Services.AddDbContext(options => { + //IConfiguration configuration = builder.Configuration; options.UseOracle( - connectionString, - options => options.UseOracleSQLCompatibility("11") + ConString, + options => + options.UseOracleSQLCompatibility("11") ); }); +#endregion + + +#region Config: RabbitMQ + +//Get config desde appsettings.json +builder.Services.Configure(builder.Configuration.GetSection("RabbitMQConfig")); + +builder.Services.AddSingleton(sp => +{ + var config = sp.GetRequiredService>().Value; + + var factory = new ConnectionFactory + { + HostName = config.HostName, + UserName = config.UserName, + Password = config.Password + }; + return factory.CreateConnection(); +}); + +builder.Services.AddScoped(provider => +{ + // Creación de channel, declaración de queues y binding + return RabbitMQService.GetRabbitMQChannel(provider, projectName); +}); + +#endregion + +#region Config: Cors + // Enable Cors builder.Services.AddCors(options => { options.AddPolicy(name: "widthoutCors", @@ -35,6 +91,9 @@ builder.Services.AddCors(options => { }); }); +#endregion + +#region Mapping / Build var app = builder.Build(); // Configure the HTTP request pipeline. @@ -59,4 +118,10 @@ app.UseAuthorization(); app.MapControllers(); -app.Run(); +#endregion + + +// Start and Subscribe to RabbitMQ event +RabbitMQService.ListenForIntegrationEvents(projectName, builder); + +app.Run(); \ No newline at end of file diff --git a/Microservicios/MsUsuarios/Utils/RabbitMQService.cs b/Microservicios/MsUsuarios/Utils/RabbitMQService.cs new file mode 100644 index 0000000..5e1481d --- /dev/null +++ b/Microservicios/MsUsuarios/Utils/RabbitMQService.cs @@ -0,0 +1,207 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; +using MSAdminUsuarios.Context; +using MSAdminUsuarios.Controllers; +using MSAdminUsuarios.Models; +using Newtonsoft.Json; +using RabbitMQ.Client; +using RabbitMQ.Client.Events; +using System.Reflection; +using System.Text; + +namespace MSAdminUsuarios.Utils +{ + public static class RabbitMQService + { + private static string[] _queues = Array.Empty(); + private static string _exchange = "MSAdminUsuarios"; + + + public static IModel GetRabbitMQChannel(IServiceProvider serviceProvider, string projectName) + { + //var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole().AddEventLog()); + //var logger = loggerFactory.CreateLogger("Rabbit1"); + + var connection = serviceProvider.GetService(); + + if (connection == null) + throw new Exception("Connection is null."); + + var channel = connection.CreateModel(); + + //Declare exchange if it doesnt already exist + var exchangeName = projectName; + _exchange = exchangeName; + + + channel.ExchangeDeclare( + exchange: exchangeName, + type: ExchangeType.Topic, + durable: true, + autoDelete: false, + arguments: null + ); + + _queues = new string[] + { + $"{exchangeName}.PerfilesPorUsuario", + $"{exchangeName}.Usuarios" + }; + + foreach (var queue in _queues) + { + channel.QueueDeclare( + queue: queue, + durable: true, + exclusive: false, + autoDelete: false, + arguments: null + ); + + channel.QueueBind( + queue: queue, + exchange: exchangeName, + routingKey: $"{queue}.*" + ); + } + + return channel; + } + + public static void ListenForIntegrationEvents(string projectName, WebApplicationBuilder builder) + { + 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() + { + HostName = mqConfig.HostName, + UserName = mqConfig.UserName, + Password = mqConfig.Password, + }; + + IConnection connection = factory.CreateConnection(); + IModel channel = connection.CreateModel(); + + EventingBasicConsumer consumer = new(channel); + + consumer.Received += RabbitMQService.ConsumeRabbitMQEvent; + + List queues = new() + { + $"{projectName}.PerfilesPorUsuario", + $"{projectName}.Usuarios", + }; + + foreach (var queue in queues) + { + channel.BasicConsume( + queue: queue, + autoAck: false, + consumer: consumer + ); + } + } + + + public static async void ConsumeRabbitMQEvent(object? sender, BasicDeliverEventArgs ea) + { + var body = ea.Body.ToArray(); + var message = Encoding.UTF8.GetString(body); + + var route = ea.RoutingKey; + + if (message == null || message.Length == 0) + { + throw new Exception("Datos no recibidos"); + } + + if (route == null || route.Length == 0) + { + throw new Exception("RouteKey no recibida"); + } + + + var controller = route.Split("."); + + + var consumer = (EventingBasicConsumer)sender!; + var model = consumer.Model; + + + var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole().AddEventLog()); + var logger = loggerFactory.CreateLogger("RMQ.MsAdminUsuarios"); + + ModelContext context = new(); + + if (controller[1] == "PerfilesPorUsuario") + { + try + { + var data = JsonConvert.DeserializeObject(message); + + var PPUCtrl = new PerfilesPorUsuarioController(context); + var result = await PPUCtrl.GuardarPerfilesPorUsuario(data!); + + if (result is OkResult) + { + model.BasicAck(ea.DeliveryTag, false); + } + else throw new Exception(); + } + catch (Exception ex) + { + // Temporalmente solo logeamos el error en lugar de rechazar + logger.LogCritical(ExMessage(ex)); + //model.BasicReject(ea.DeliveryTag, true); + + + model.BasicAck(ea.DeliveryTag, false); + + } + return; + } + + if (controller[1] == "Usuarios") + { + try + { + var data = JsonConvert.DeserializeObject(message); + var UsuariosCtrl = new UsuariosController(context); + + var result = await UsuariosCtrl.GuardarUsuarios(data!); + + + if (result is OkResult) + { + model.BasicAck(ea.DeliveryTag, false); + } + else throw new Exception(); + } + catch (Exception ex) + { + // Temporalmente solo logeamos el error en lugar de rechazar + logger.LogCritical(ExMessage(ex)); + //model.BasicReject(ea.DeliveryTag, true); + + + model.BasicAck(ea.DeliveryTag, false); + } + return; + } + + } + + private static string ExMessage(Exception ex) + { + var sb = new StringBuilder(); + sb.Append(ex.Message) + .Append(ex.InnerException); + return sb.ToString(); + } + + } +} diff --git a/Microservicios/MsUsuarios/appsettings.Development.json b/Microservicios/MsUsuarios/appsettings.Development.json index a25e4a7..c013fc0 100644 --- a/Microservicios/MsUsuarios/appsettings.Development.json +++ b/Microservicios/MsUsuarios/appsettings.Development.json @@ -1,9 +1,5 @@ { "ConnectionStrings": { - "DBPrueba": "user id=HIMSCAP;password=ITTASA2017;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=181.129.245.90)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=PROYECTOS)))", - "DBProd": "user id=HIMSCAP;password=ITTASA2017;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.194)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=PROYECTOS)))", - "DBUnisalud": "user id=Admin;password=LWxZwRFgEpBHtnEHR233;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=unisalud.cc6itcnj1ux9.us-east-1.rds.amazonaws.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=UNISALUD)))", - "ConString": "user id=HIMSCAP;password=ITTASA2017;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=181.129.245.90)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=PROYECTOS)))" }, "RabbitMQConfig": { diff --git a/Microservicios/MsUsuarios/appsettings.json b/Microservicios/MsUsuarios/appsettings.json index 3c6a008..0a1797c 100644 --- a/Microservicios/MsUsuarios/appsettings.json +++ b/Microservicios/MsUsuarios/appsettings.json @@ -1,9 +1,5 @@ { "ConnectionStrings": { - "DBPrueba": "user id=HIMSCAP;password=ITTASA2017;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=181.129.245.90)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=PROYECTOS)))", - "DBProd": "user id=HIMSCAP;password=ITTASA2017;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.194)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=PROYECTOS)))", - "DBUnisalud": "user id=Admin;password=LWxZwRFgEpBHtnEHR233;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=unisalud.cc6itcnj1ux9.us-east-1.rds.amazonaws.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=UNISALUD)))", - "ConString": "user id=Admin;password=LWxZwRFgEpBHtnEHR233;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=unisalud.cc6itcnj1ux9.us-east-1.rds.amazonaws.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=UNISALUD)))" }, "RabbitMQConfig": {