internal static void ApiSolicitudEndConsul(InsertPersonasWeb insertPersonasWeb, ref DTO_SOLICITUD_VENTAS persona)
        {
            string xClase   = string.Format("{0}|{1}", MethodBase.GetCurrentMethod().Module.Name, MethodBase.GetCurrentMethod().DeclaringType.Name);
            string xProceso = MethodBase.GetCurrentMethod().Name;
            var    dto      = new DynamicDto();

            dto.ParameterList = new List <SpParameter>();

            dto.ParameterList.AddRange(from nodo in insertPersonasWeb.GetType().GetProperties()
                                       where nodo.GetValue(insertPersonasWeb) != null
                                       select new SpParameter
            {
                Name  = nodo.Name,
                Value = nodo.GetValue(insertPersonasWeb).ToString()
            }
                                       );
            dto.Result = null;
            dto.SPName = "usp_ValidarPIN";

            var dto_excepcion = new UTL_TRA_EXCEPCION
            {
                STR_CLASE      = xClase,
                STR_EVENTO     = xProceso,
                STR_PARAMETROS = JsonConvert.SerializeObject(insertPersonasWeb),
                STR_APLICATIVO = ConfigurationManager.AppSettings["Aplicativo"],
                STR_SERVIDOR   = System.Net.Dns.GetHostName()
            };

            try
            {
                var obj = DynamicSqlDAO.ExecuterSp(dto, GlobalClass.connectionString.Where(a => a.Key == infDto.STR_COD_PAIS).FirstOrDefault().Value);

                var dto_result = new List <DTO_SOLICITUD_VENTAS>();
                if (obj.HasResult)
                {
                    dto_result = JsonConvert.DeserializeObject <List <DTO_SOLICITUD_VENTAS> >(JsonConvert.SerializeObject(obj.Result.Tables[0]));
                }


                persona = dto_result.ToList().FirstOrDefault();
                if (persona != null)
                {
                    persona.Status = dto_result.Any() ? dto_result.ToList().FirstOrDefault().Status : null;
                }
                else
                {
                    persona = new DTO_SOLICITUD_VENTAS();
                }
            }
            catch (Exception ex)
            {
                dto_excepcion.STR_MENSAJE = ex.Message;
                dto_excepcion.STR_DETALLE = ex.StackTrace;
                TwoFunTwoMe_DataAccess.Utility.guardaExcepcion(dto_excepcion, GlobalClass.connectionString.Where(a => a.Key == infDto.STR_COD_PAIS).FirstOrDefault().Value);
            }
        }
        public ActionResult InsertarNuevaSolictitudes(DTO_SOLICITUD_VENTAS solicitudes)
        {
            int contadorIntentos      = 0;
            InsertPersonasWeb persona = new InsertPersonasWeb();

            try
            {
                if (ModelState.IsValid)
                {
                    persona.Identificacion = solicitudes.Identificacion;
                    persona.TelefonoCel    = solicitudes.Telefono;
                    persona.Correo         = solicitudes.Mail;
                    persona.SubOrigen      = solicitudes.SubOrigen;
                    persona.UsrModifica    = Convert.ToString(Session["agente"]);
                    persona.Origen         = GlobalClass.Origen_Apps;

                    Models.Manager.clsInsertaSolicitud.InsertaSolicitudesInvoke(ref persona);
                    if (persona.UltidSolicitud == null)
                    {
                        persona.UltidSolicitud = 0;
                    }
                    System.Threading.Thread.Sleep(9000);
                    while ((solicitudes.Status == 12 || solicitudes.Status == null || solicitudes.Status == 0) && (contadorIntentos < 50))
                    {
                        Models.Manager.clsInsertaSolicitud.ApiSolicitudEndConsul(persona, ref solicitudes);
                        contadorIntentos++;
                    }
                    solicitudes.Identificacion = persona.Identificacion;
                    if (persona.SegundoNombre != "")
                    {
                        solicitudes.Nombre = persona.PrimerNombre + " " + persona.SegundoNombre + " " + persona.PrimerApellido + " " + persona.SegundoApellido;
                    }
                    else
                    {
                        solicitudes.Nombre = persona.PrimerNombre + " " + persona.PrimerApellido + " " + persona.SegundoApellido;
                    }
                }
            }
            catch (Exception ex)
            {
                solicitudes.Status  = -1;
                solicitudes.Mensaje = ex.Message;
                return(Json(solicitudes));
                //persona.Respuesta = "Ocurrio un Error";
            }
            //return View(asignacionbuckets);
            return(Json(solicitudes));
        }
        private static void InserteSolicStartConsult(InsertPersonasWeb insertPersonasWeb, ref InsertPersonasWeb persona)
        {
            string xClase        = string.Format("{0}|{1}", MethodBase.GetCurrentMethod().Module.Name, MethodBase.GetCurrentMethod().DeclaringType.Name);
            string xProceso      = MethodBase.GetCurrentMethod().Name;
            var    dto_excepcion = new UTL_TRA_EXCEPCION
            {
                STR_CLASE      = xClase,
                STR_EVENTO     = xProceso,
                STR_PARAMETROS = JsonConvert.SerializeObject(insertPersonasWeb),
                STR_APLICATIVO = ConfigurationManager.AppSettings["Aplicativo"],
                STR_SERVIDOR   = System.Net.Dns.GetHostName()
            };

            insertPersonasWeb.Correo = string.IsNullOrEmpty(insertPersonasWeb.Correo) ? "no tiene" : insertPersonasWeb.Correo;
            insertPersonasWeb.Origen = GlobalClass.Origen_Apps;
            try
            {
                // insertPersonasWeb.URL = "http://localhost:52045//api/TwoFunTwoMe/GuardarPersonaWeb";
                RestClient  cliente = new RestClient(insertPersonasWeb.URL); // Dirección web del reporte
                RestRequest request = new RestRequest();                     // Clase propia del RestSharp para asignar parámetros de envio.
                                                                             //	request.AddHeader("Authorization", buro.Authorization); // Aquí va el token generado para Desyfin
                request.Method = Method.POST;

                request.AddHeader("Accept", "application/json");
                //request.AddHeader("Accept", "application/xml");

                request.AddJsonBody(JsonConvert.SerializeObject(insertPersonasWeb));


                var respuesta = cliente.Execute(request);                 // Metodo que ejecuta la solicitud.
                if (respuesta.StatusCode == System.Net.HttpStatusCode.OK) // Si retorna OK, el reporte fue generado.
                {
                    persona = JsonConvert.DeserializeObject <InsertPersonasWeb>(respuesta.Content);
                }
                else
                {
                    persona.Respuesta = "No se pudo ingresar la solicitud";
                    throw new Exception(persona.Respuesta);
                }
            }
            catch (Exception ex)
            {
                dto_excepcion.STR_MENSAJE = ex.Message;
                dto_excepcion.STR_DETALLE = ex.StackTrace;
                TwoFunTwoMe_DataAccess.Utility.guardaExcepcion(dto_excepcion, GlobalClass.connectionString.Where(a => a.Key == infDto.STR_COD_PAIS).FirstOrDefault().Value);
                throw ex;
            }
        }
        private static bool ConsultaUltimoIngresoSolicitud(InsertPersonasWeb persona)
        {
            string xClase   = string.Format("{0}|{1}", MethodBase.GetCurrentMethod().Module.Name, MethodBase.GetCurrentMethod().DeclaringType.Name);
            string xProceso = MethodBase.GetCurrentMethod().Name;

            var dto_excepcion = new UTL_TRA_EXCEPCION
            {
                STR_CLASE      = xClase,
                STR_EVENTO     = xProceso,
                STR_PARAMETROS = JsonConvert.SerializeObject(persona),
                STR_APLICATIVO = ConfigurationManager.AppSettings["Aplicativo"],
                STR_SERVIDOR   = System.Net.Dns.GetHostName()
            };
            var dto = new DynamicDto();

            dto.ParameterList = new List <SpParameter>();

            dto.ParameterList.AddRange(from nodo in persona.GetType().GetProperties()
                                       where nodo.GetValue(persona) != null
                                       select new SpParameter
            {
                Name  = nodo.Name,
                Value = nodo.GetValue(persona).ToString()
            }
                                       );
            dto.Result = null;
            dto.SPName = "usp_consulta_ultimo_ingreso_solicitud";


            try
            {
                var obj = DynamicSqlDAO.ExecuterSp <InsertPersonasWeb>(dto, GlobalClass.connectionString.Where(a => a.Key == infDto.STR_COD_PAIS).FirstOrDefault().Value);
                return(obj.Any());
            }
            catch (Exception ex)
            {
                dto_excepcion.STR_MENSAJE = ex.Message;
                dto_excepcion.STR_DETALLE = ex.StackTrace;
                TwoFunTwoMe_DataAccess.Utility.guardaExcepcion(dto_excepcion, GlobalClass.connectionString.Where(a => a.Key == infDto.STR_COD_PAIS).FirstOrDefault().Value);
            }
            return(false);
        }
Beispiel #5
0
        public void insertaColaRabbit(InsertPersonasWeb personasWeb)
        {
            string xClase      = string.Format("{0}|{1}", MethodBase.GetCurrentMethod().Module.Name, MethodBase.GetCurrentMethod().DeclaringType.Name);
            string xProceso    = MethodBase.GetCurrentMethod().Name;
            string strHostName = System.Net.Dns.GetHostName();
            //IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()); <-- Obsolete
            IPHostEntry ipHostInfo = Dns.GetHostEntry(strHostName);
            IPAddress   ipAddress  = ipHostInfo.AddressList[0];

            var dto_excepcion = new UTL_TRA_EXCEPCION
            {
                STR_CLASE      = xClase,
                STR_EVENTO     = xProceso,
                STR_APLICATIVO = ConfigurationManager.AppSettings["APLICATIVO"].ToString(),
                STR_SERVIDOR   = ipAddress.ToString(),
                STR_PARAMETROS = JsonConvert.SerializeObject(personasWeb)
            };

            var dto_Config = new Tab_ConfigSys
            {
                llave_Config1 = "SERVICIO",
                llave_Config2 = "CONFIGURACION",
                llave_Config3 = "SERVIDOR",
                llave_Config4 = "RABBIT"
            };

            try
            {
                var dto_ret_config = GetConfigRabbit(dto_Config);

                var factory = new ConnectionFactory()
                {
                    HostName = dto_ret_config.Where(x => x.llave_Config5 == "HOSTNAME").Select(x => x.Dato_Char1).FirstOrDefault(),
                    //Port = 15672,
                    Password = dto_ret_config.Where(x => x.llave_Config5 == "PASSWORD").Select(x => x.Dato_Char1).FirstOrDefault(),
                    UserName = dto_ret_config.Where(x => x.llave_Config5 == "USERNAME").Select(x => x.Dato_Char1).FirstOrDefault()
                };
                using (var connection = factory.CreateConnection())
                    using (var channel = connection.CreateModel())
                    {
                        //channel.QueueDeclare(queue: dto_ret_config.Where(x => x.llave_Config5 == "EXCHANGES_SOLICITUDES").Select(x => x.Dato_Char1).FirstOrDefault(),
                        //                     durable: true,
                        //                     exclusive: false,
                        //                     autoDelete: false,
                        //                     arguments: null);



                        string message = string.Concat(personasWeb.Identificacion, "~", personasWeb.IdTipoIdentificacion, "~", personasWeb.PrimerNombre, "~", personasWeb.SegundoNombre,
                                                       "~", personasWeb.PrimerApellido, "~", personasWeb.SegundoApellido, "~", personasWeb.TelefonoCel, "~", personasWeb.Correo, "~", personasWeb.IdProducto, "~",
                                                       personasWeb.IdBanco, "~", personasWeb.UsrModifica, "~", personasWeb.Origen);

                        var body = Encoding.UTF8.GetBytes(message);

                        channel.BasicPublish(exchange: dto_ret_config.Where(x => x.llave_Config5 == "EXCHANGES_SOLICITUDES").Select(x => x.Dato_Char1).FirstOrDefault(),
                                             routingKey: "",
                                             basicProperties: null,
                                             body: body);
                        //channel.BasicPublish(exchange: "",
                        //                     routingKey: dto_ret_config.Where(x => x.llave_Config5 == "QUEUE").Select(x => x.Dato_Char1).FirstOrDefault(),
                        //                     basicProperties: null,
                        //                     body: body);
                    }
            }
            catch (Exception ex)
            {
                dto_excepcion.STR_MENSAJE = ex.Message;
                manage = new Manager();
                DynamicSqlDAO.guardaExcepcion(dto_excepcion, GlobalClass.connectionString.Where(a => a.Key == infDto.STR_COD_PAIS).FirstOrDefault().Value);
            }
        }
        internal static void InsertaSolicitudesInvoke(ref InsertPersonasWeb persona)
        {
            var    InsertPersonasWeb = new InsertPersonasWeb();
            string xClase            = string.Format("{0}|{1}", MethodBase.GetCurrentMethod().Module.Name, MethodBase.GetCurrentMethod().DeclaringType.Name);
            string xProceso          = MethodBase.GetCurrentMethod().Name;

            var dto_excepcion = new UTL_TRA_EXCEPCION
            {
                STR_CLASE      = xClase,
                STR_EVENTO     = xProceso,
                STR_PARAMETROS = JsonConvert.SerializeObject(persona),
                STR_APLICATIVO = ConfigurationManager.AppSettings["Aplicativo"],
                STR_SERVIDOR   = System.Net.Dns.GetHostName()
            };


            try
            {
                var next = ConsultaUltimoIngresoSolicitud(persona);

                if (!next)
                {
                    ConsultaConfigConsultaWebApiInsertPerWeb(persona, ref InsertPersonasWeb);
                    if (InsertPersonasWeb != null)
                    {
                        var Nombre = InsertPersonasWeb.nombre.Split(' ');
                        InsertPersonasWeb.PrimerNombre  = Nombre[0];
                        InsertPersonasWeb.SegundoNombre = "";
                        if (Nombre.Count() >= 2)
                        {
                            InsertPersonasWeb.SegundoNombre = Nombre[1];
                        }
                        if (Nombre.Count() >= 3)
                        {
                            InsertPersonasWeb.SegundoNombre = InsertPersonasWeb.SegundoNombre + ' ' + Nombre[2];
                        }
                        if (Nombre.Count() >= 4)
                        {
                            InsertPersonasWeb.SegundoNombre = InsertPersonasWeb.SegundoNombre + ' ' + Nombre[3];
                        }
                        InsertPersonasWeb.TelefonoCel = persona.TelefonoCel;
                        InsertPersonasWeb.UsrModifica = persona.Origen;
                        InsertPersonasWeb.IdProducto  = 48;
                        InsertPersonasWeb.Correo      = persona.Correo;
                        InsertPersonasWeb.SubOrigen   = persona.SubOrigen;
                        InserteSolicStartConsult(InsertPersonasWeb, ref persona);
                        persona.UltidSolicitud       = persona.IdSolicitud;
                        persona.IdTipoIdentificacion = InsertPersonasWeb.IdTipoIdentificacion;
                        persona.Identificacion       = InsertPersonasWeb.Identificacion;
                        //CreddidEndConsul(InsertPersonasWeb, ref persona);
                        persona.PrimerNombre    = InsertPersonasWeb.PrimerNombre;
                        persona.SegundoNombre   = InsertPersonasWeb.SegundoNombre;
                        persona.PrimerApellido  = InsertPersonasWeb.PrimerApellido;
                        persona.SegundoApellido = InsertPersonasWeb.SegundoApellido;
                        persona.MontoMaximo     = InsertPersonasWeb.MontoMaximo;
                        persona.Status          = InsertPersonasWeb.Status;
                        persona.Respuesta       = "ACKCRE00";
                    }
                    else
                    {
                        throw new Exception("No se pudo ingresar la solicitud, el sujeto no existe en el padron");
                    }
                }
                else
                {
                    throw new Exception("No se pudo ingresar la solicitud, el sujeto ya tiene una solicitud ingresado el dia de hoy");
                }
            }
            catch (Exception ex)
            {
                dto_excepcion.STR_MENSAJE = ex.Message;
                dto_excepcion.STR_DETALLE = ex.StackTrace;
                TwoFunTwoMe_DataAccess.Utility.guardaExcepcion(dto_excepcion, GlobalClass.connectionString.Where(a => a.Key == infDto.STR_COD_PAIS).FirstOrDefault().Value);
                throw ex;
            }
        }