/// <summary>
        ///
        /// </summary>
        /// <param name="info"></param>

        public bool CrearLog(BaseCambios info)
        {
            try
            {
                var connection = _configuration.GetSection("Global:Services:Siaerp:ConnectionString").Value;
                var model      = new ConsultaPersonaLog
                {
                    IdConsultaPersonaLog = 0,
                    IdUsuario            = 15663,
                    Usuario               = "DATOSPERSONAWS",
                    Rol                   = (int)RolBusqueda.Normal,
                    Origen                = (int)OrigenBusqueda.DataBook,
                    Fecha                 = DateTime.Now,
                    Aplicacion            = "ROLES",
                    UrlLlamada            = "",
                    Respuesta             = "CONSULTA REALIZADA.",
                    Accion                = (int)AccionConsulta.Consulta,
                    BasePropia            = 0,
                    RegistroCivil         = 0,
                    NombreCompletoUsuario = info.MTR_NOMBRE_COMPLETO,
                    CedulaConsultada      = info.MTR_IDENTIFICACION,
                    DataBook              = 1
                };

                var flag = AddLog(model, connection);

                //_oracleContext.ConsultaPersonaLogs.Add(model);
                //var x = _oracleContext.SaveChangesAsync();
                return(flag);
            }
            catch (Exception)
            {
                return(false);
            }
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public bool GuardarLog(BaseCambios model)
 {
     try
     {
         return(_consultaLogRepository.CrearLog(model));
     }
     catch (Exception)
     {
         return(false);
     }
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public bool GuardarBaseIntermedia(BaseCambios model)
 {
     try
     {
         return(_baseCambiosRepository.GuardarBaseIntermedia(model));
     }
     catch (Exception e)
     {
         return(false);
     }
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public bool GuardarBaseIntermedia(BaseCambios model)
 {
     try
     {
         var person = _mySqlContext.BaseCambios.FirstOrDefault(x => x.MTR_IDENTIFICACION == model.MTR_IDENTIFICACION);
         if (person != null)
         {
             person.MTR_NOMBRE_COMPLETO     = model.MTR_NOMBRE_COMPLETO;
             person.MTR_DIRECCION_DOMICILIO = model.MTR_DIRECCION_DOMICILIO;
             person.MTR_ACT_ECONOMICA       = model.MTR_ACT_ECONOMICA;
             person.MTR_DESC_ACT_ECONOMICA  = model.MTR_DESC_ACT_ECONOMICA;
             person.MTR_ACTIVOS             = model.MTR_ACTIVOS;
             person.MTR_ANTIG_TRABAJO       = model.MTR_ANTIG_TRABAJO;
             person.MTR_ARCHIVO_DIGITAL     = model.MTR_ARCHIVO_DIGITAL;
             person.MTR_CALIF_EQUIFAX       = model.MTR_CALIF_EQUIFAX;
             person.MTR_CALLE_PRINC_DOM     = model.MTR_CALLE_PRINC_DOM;
             person.MTR_CALLE_PRINC_OFI     = model.MTR_CALLE_PRINC_OFI;
             person.MTR_CALLE_PRINC_OTR     = model.MTR_CALLE_PRINC_OTR;
             person.MTR_CALLE_SECUN_DOM     = model.MTR_CALLE_SECUN_DOM;
             person.MTR_CALLE_SECUN_OFI     = model.MTR_CALLE_SECUN_OFI;
             person.MTR_CALLE_SECUN_OTR     = model.MTR_CALLE_SECUN_OTR;
             person.MTR_COD_CANTON          = model.MTR_COD_CANTON;
             person.MTR_CANTON            = model.MTR_CANTON;
             person.MTR_CARGAS_FAMILIARES = model.MTR_CARGAS_FAMILIARES;
             person.MTR_CARGO             = model.MTR_CARGO;
             person.MTR_CIIU                = model.MTR_CIIU;
             person.MTR_CIIU_DESCRIPCION    = model.MTR_CIIU_DESCRIPCION;
             person.MTR_CIUDAD              = model.MTR_CIUDAD;
             person.MTR_CLASIF_CIA          = model.MTR_CLASIF_CIA;
             person.MTR_COD_CANTON          = model.MTR_COD_CANTON;
             person.MTR_COD_NACIONALIDAD    = model.MTR_COD_NACIONALIDAD;
             person.MTR_COD_PAIS            = model.MTR_COD_PAIS;
             person.MTR_COD_POSTAL          = model.MTR_COD_POSTAL;
             person.MTR_COD_PROVINCIA       = model.MTR_COD_PROVINCIA;
             person.MTR_DESC_ACT_ECONOMICA  = model.MTR_DESC_ACT_ECONOMICA;
             person.MTR_DIRECCION_DOMICILIO = model.MTR_DIRECCION_DOMICILIO;
             person.MTR_DIRECCION_OFICINA   = model.MTR_DIRECCION_OFICINA;
             person.MTR_DIRECCION_OTRA      = model.MTR_DIRECCION_OTRA;
             person.MTR_DISCAPACIDAD        = model.MTR_DISCAPACIDAD;
             person.MTR_EMAIL_FACTURACION   = model.MTR_EMAIL_FACTURACION;
             person.MTR_EMAIL_OFICINA       = model.MTR_EMAIL_OFICINA;
             person.MTR_EMAIL_PERSONAL      = model.MTR_EMAIL_PERSONAL;
             person.MTR_ESTADO              = model.MTR_ESTADO;
             person.MTR_ESTADO_CIA          = model.MTR_ESTADO_CIA;
             person.MTR_ESTADO_CIVIL        = model.MTR_ESTADO_CIVIL;
             person.MTR_ES_APS              = model.MTR_ES_APS;
             person.MTR_ES_ASEGURADO        = model.MTR_ES_ASEGURADO;
             person.MTR_ES_BENEFICIARIO     = model.MTR_ES_BENEFICIARIO;
             person.MTR_ES_CANAL            = model.MTR_ES_CANAL;
             person.MTR_ES_CONTRATISTA      = model.MTR_ES_CONTRATISTA;
             person.MTR_ES_EMPLEADO         = model.MTR_ES_EMPLEADO;
             person.MTR_ES_ENT_CONTROL      = model.MTR_ES_ENT_CONTROL;
             person.MTR_ES_ENT_FINANCIERA   = model.MTR_ES_ENT_FINANCIERA;
             person.MTR_ES_GARANTE          = model.MTR_ES_GARANTE;
             person.MTR_ES_PERITO           = model.MTR_ES_PERITO;
             person.MTR_ES_POLITICO         = model.MTR_ES_PROVEEDOR;
             person.MTR_ES_REF_COMERCIAL    = model.MTR_ES_REF_COMERCIAL;
             person.MTR_ES_REF_PERSONAL     = model.MTR_ES_REF_PERSONAL;
             person.MTR_ES_SOLICITANTE      = model.MTR_ES_SOLICITANTE;
             person.MTR_ES_TALLER           = model.MTR_ES_TALLER;
             person.MTR_FACEBOOK            = model.MTR_FACEBOOK;
             person.MTR_FEC_CONSTITUCION    = model.MTR_FEC_CONSTITUCION;
             person.MTR_FEC_CREACION        = model.MTR_FEC_CREACION;
             person.MTR_FEC_DEFUNCION       = model.MTR_FEC_DEFUNCION;
             person.MTR_FEC_FORMULARIO_VINC = model.MTR_FEC_FORMULARIO_VINC;
             person.MTR_FEC_INI_ACT         = model.MTR_FEC_INI_ACT;
             person.MTR_FEC_INSC_RUC        = model.MTR_FEC_INSC_RUC;
             person.MTR_FEC_MATRIMONIO      = model.MTR_FEC_MATRIMONIO;
             person.MTR_FEC_ULT_ACT         = DateTime.Now;
             person.MTR_FUENTE_OTROS_ING    = model.MTR_FUENTE_OTROS_ING;
             person.MTR_GASTOS_MENS         = model.MTR_GASTOS_MENS;
             person.MTR_GENERO              = model.MTR_GENERO;
             person.MTR_ID_CONYUGE          = model.MTR_ID_CONYUGE;
             person.MTR_ID_EMPRESA          = model.MTR_ID_EMPRESA;
             person.MTR_ID_GERENTE_GNRAL    = model.MTR_ID_GERENTE_GNRAL;
             person.MTR_ID_MADRE            = model.MTR_ID_MADRE;
             person.MTR_ID_PADRE            = model.MTR_ID_PADRE;
             person.MTR_NACIONALIDAD        = model.MTR_NACIONALIDAD;
             person.MTR_NOMBRE_COMPLETO     = model.MTR_NOMBRE_COMPLETO;
             person.MTR_NOMBRE_CONYUGE      = model.MTR_NOMBRE_CONYUGE;
             person.MTR_NOMBRE_MADRE        = model.MTR_NOMBRE_MADRE;
             person.MTR_NOMBRE_PADRE        = model.MTR_NOMBRE_PADRE;
             person.MTR_NUM_HIJOS           = model.MTR_NUM_HIJOS;
             person.MTR_NUM_VEHICULOS       = model.MTR_NUM_VEHICULOS;
             person.MTR_OBLIGADO_CONT       = model.MTR_OBLIGADO_CONT;
             person.MTR_TELEFONO_CELULAR    = model.MTR_TELEFONO_CELULAR;
             person.MTR_TELEFONO_DOMICILIO  = model.MTR_TELEFONO_DOMICILIO;
             person.MTR_TIPO_PERSONA        = model.MTR_TIPO_PERSONA;
             _mySqlContext.SaveChanges();
             return(true);
         }
         else
         {
             _mySqlContext.BaseCambios.Add(model);
             _mySqlContext.SaveChanges();
             _logger.LogInformation("Cambios grabados. en Base de Cambios");
             return(true);
         }
     }
     catch (Exception e)
     {
         _logger.LogError(e, "Error al grabar/actualizar registro en Base de Cambios");
         return(false);
     }
 }
        /// <summary>
        /// Metodo para mapeo de Entidad Obtenida en DataBook (XML) a un Objeto
        /// </summary>
        /// <param name="xml"></param>
        /// <returns></returns>
        public BaseCambios MapearEntidad(string xml)
        {
            _logger.LogInformation("Inicia transformación de respuesta DataBook {@xml}", xml);
            try
            {
                var xDoc = new XmlDocument();
                xDoc.LoadXml(xml);
                var civil           = xDoc.GetElementsByTagName("civil");
                var cedula          = ((XmlElement)civil[0]).GetElementsByTagName("cedula")[0];
                var primerNombre    = ((XmlElement)civil[0]).GetElementsByTagName("primernombre")[0];
                var segundoNombre   = ((XmlElement)civil[0]).GetElementsByTagName("segundonombre")[0];
                var primerApellido  = ((XmlElement)civil[0]).GetElementsByTagName("primerapellido")[0];
                var segundoApellido = ((XmlElement)civil[0]).GetElementsByTagName("segundoapellido")[0];
                var nombreConyugue  = ((XmlElement)civil[0]).GetElementsByTagName("nombreconyuge")[0];
                var nombrePadre     = ((XmlElement)civil[0]).GetElementsByTagName("nombrepadre")[0];
                var nombreMadre     = ((XmlElement)civil[0]).GetElementsByTagName("nombremadre")[0];
                var profesion       = ((XmlElement)civil[0]).GetElementsByTagName("profesion")[0];
                var nacionalidad    = ((XmlElement)civil[0]).GetElementsByTagName("nacionalidad")[0];
                var diaNacimiento   = ((XmlElement)civil[0]).GetElementsByTagName("dianacimiento")[0];
                var mesNacimiento   = ((XmlElement)civil[0]).GetElementsByTagName("mesnacimiento")[0];
                var anioNacimiento  = ((XmlElement)civil[0]).GetElementsByTagName("anionacimiento")[0];
                var estadoCivil     = ((XmlElement)civil[0]).GetElementsByTagName("estadocivil")[0];
                var genero          = ((XmlElement)civil[0]).GetElementsByTagName("genero")[0];
                var diaMatrimonio   = ((XmlElement)civil[0]).GetElementsByTagName("diamatrimonio")[0];
                var mesMatrimonio   = ((XmlElement)civil[0]).GetElementsByTagName("mesmatrimonio")[0];
                var anioMatrimonio  = ((XmlElement)civil[0]).GetElementsByTagName("aniomatrimonio")[0];
                var diaDefuncion    = ((XmlElement)civil[0]).GetElementsByTagName("diadefuncion")[0];
                var mesDefuncion    = ((XmlElement)civil[0]).GetElementsByTagName("mesdefuncion")[0];
                var anioDefuncion   = ((XmlElement)civil[0]).GetElementsByTagName("aniodefuncion")[0];


                var fechaMatrimonio = "";
                if (string.IsNullOrEmpty(diaMatrimonio.InnerText) && string.IsNullOrEmpty(mesMatrimonio.InnerText) && string.IsNullOrEmpty(anioMatrimonio.InnerText))
                {
                    fechaMatrimonio = null;
                }
                else
                {
                    fechaMatrimonio = diaMatrimonio.InnerText + "/" + mesMatrimonio.InnerText + "/" + anioMatrimonio.InnerText;
                }
                var fechaDefuncion = "";
                if (string.IsNullOrEmpty(diaDefuncion.InnerText) && string.IsNullOrEmpty(mesDefuncion.InnerText) && string.IsNullOrEmpty(anioDefuncion.InnerText))
                {
                    fechaDefuncion = null;
                }
                else
                {
                    fechaDefuncion = diaDefuncion.InnerText + "/" + mesDefuncion.InnerText + "/" + anioDefuncion.InnerText;
                }

                var result = new BaseCambios
                {
                    MTR_IDENTIFICACION   = cedula.InnerText,
                    MTR_PRIMER_NOMBRE    = primerNombre.InnerText,
                    MTR_SEGUNDO_NOMBRE   = segundoNombre.InnerText,
                    MTR_PRIMER_APELLIDO  = primerApellido.InnerText,
                    MTR_SEGUNDO_APELLIDO = segundoApellido.InnerText,
                    MTR_NOMBRE_CONYUGE   = nombreConyugue.InnerText,
                    MTR_NOMBRE_PADRE     = nombrePadre.InnerText,
                    MTR_NOMBRE_MADRE     = nombreMadre.InnerText,
                    MTR_PROFESION        = profesion.InnerText,
                    MTR_NACIONALIDAD     = nacionalidad.InnerText,
                    MTR_FEC_NACIMIENTO   = Convert.ToDateTime(diaNacimiento.InnerText + "/" + mesNacimiento.InnerText + "/" + anioNacimiento.InnerText),
                    MTR_FEC_MATRIMONIO   = Convert.ToDateTime(fechaMatrimonio),
                    MTR_FEC_DEFUNCION    = Convert.ToDateTime(fechaDefuncion),
                    MTR_ESTADO_CIVIL     = estadoCivil.InnerText,
                    MTR_GENERO           = genero.InnerText,
                    MTR_NOMBRE_COMPLETO  = primerApellido.InnerText + " " + segundoApellido.InnerText + " " + primerNombre.InnerText + " " + segundoNombre.InnerText,

                    //Sin Datos
                    MTR_ACT_ECONOMICA     = null,
                    MTR_ACTIVOS           = null,
                    MTR_ARCHIVO_DIGITAL   = null,
                    MTR_CALIF_EQUIFAX     = null,
                    MTR_CIIU_DESCRIPCION  = null,
                    MTR_CIUDAD            = null,
                    MTR_CLASIF_CIA        = null,
                    MTR_COD_POSTAL        = null,
                    MTR_DISCAPACIDAD      = null,
                    MTR_EMAIL_FACTURACION = null,
                    MTR_EMAIL_OFICINA     = null,
                    MTR_FEC_CONSTITUCION  = null,

                    //Valores Fijos
                    MTR_ESTADO = "ACTIVO",
                    MTR_TIPO_IDENTIFICACION = "C",
                    MTR_TIPO_PERSONA        = "NATURAL",

                    //Valores Fecha

                    MTR_FEC_CREACION = DateTime.Now,
                    MTR_FEC_ULT_ACT  = DateTime.Now,
                };
                _logger.LogInformation("Transformación exitosa {@identification}", result.MTR_IDENTIFICACION);

                return(result);
            }
            catch (Exception e)
            {
                _logger.LogError("Transformación con error");
                return(null);
            }
        }