/// <summary>
        /// Ejucion del metodo auditable
        /// </summary>
        /// <param name="invocation">Datos de invocacion del metodo</param>
        /// <returns>Resultado de la operacion del metodo autitable</returns>
        public object Invoke(IMethodInvocation invocation)
        {
            object resultadoMetodo = invocation.Proceed();

            if (resultadoMetodo is ResultadoOperacionDto)
            {
                ResultadoOperacionDto   resultadoOperacionDto   = (ResultadoOperacionDto)resultadoMetodo;
                InformacionAuditoriaDto informacionAuditoriaDto = resultadoOperacionDto.InformacionAuditoria;
                RegistroAuditoria       registroAuditoria       = new RegistroAuditoria();
                if (informacionAuditoriaDto != null)
                {
                    registroAuditoria.IdEmpresa         = informacionAuditoriaDto.Empresa;
                    registroAuditoria.Registro          = informacionAuditoriaDto.Registro;
                    registroAuditoria.IdAccionAuditable = informacionAuditoriaDto.Accion;
                    registroAuditoria.IdModulo          = informacionAuditoriaDto.Modulo;
                    registroAuditoria.IdUsuario         = informacionAuditoriaDto.IdUsuario;
                    registroAuditoria.Fecha             = DateTime.Now;
                    if (HttpContext.Current != null)
                    {
                        var session = HttpContext.Current.Session;
                        if (session != null)
                        {
                            if (registroAuditoria.IdEmpresa == 0 && session[ConstantsWeb.IdEmpresaSession] != null)
                            {
                                registroAuditoria.IdEmpresa = long.Parse(session[ConstantsWeb.IdEmpresaSession].ToString());
                            }
                        }
                    }
                    RegistroAuditoriaRepository.GuardarRegistroAuditoria(registroAuditoria);
                }
            }
            return(resultadoMetodo);
        }
        public async Task Invoke(HttpContext context)
        {
            var apiKey        = ((FrameRequestHeaders)context.Request.Headers).HeaderAuthorization;
            var apiHttpClient = new ApiHttpClient(apiKey, "http://localhost:61000/", _httpClient);


            var    userIsAuthenticated = context.User.Identity.IsAuthenticated;
            var    req = context.Request;
            string bodyContent;
            var    queryString = req.QueryString.ToString();

            // Allows using several time the stream in ASP.Net Core
            req.EnableRewind();

            using (StreamReader reader
                       = new StreamReader(req.Body, Encoding.UTF8, true, 1024, true))
            {
                bodyContent = reader.ReadToEnd();
            }

            // Rewind, so the core is not lost when it looks the body for the request
            req.Body.Position = 0;

            UsuarioLogin usuarioLogin = null;

            if (userIsAuthenticated)
            {
                usuarioLogin = new UsuarioLogin
                {
                    Nome     = context.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value,
                    Email    = context.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Email)?.Value,
                    AuthTime = Convert.ToDateTime(context.User.Claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.AuthTime)?.Value, CultureInfo.InvariantCulture)
                };
            }

            var caminhoRequest = context.Request.Path;


            var registroAuditoria = new RegistroAuditoria
            {
                IsAuthenticated = userIsAuthenticated,
                Usuario         = usuarioLogin,
                BodyContent     = bodyContent,
                CaminhoRequest  = caminhoRequest,
                QueryString     = queryString
            };

            var resposta = await apiHttpClient.HttpClient.PostAsync("v1/private/auditoria", JsonConvert.SerializeObject(registroAuditoria));

            await _next.Invoke(context);


            // Clean up.
        }
Exemplo n.º 3
0
        /// <summary>
        /// Persiste la información de auditoria.
        /// </summary>
        /// <param name="inforAudit">Dto con la información a persistir.</param>
        /// <returns></returns>
        public void RegistrarAccionAuditoria(InformacionAuditoriaDto inforAudit)
        {
            RegistroAuditoria registroAuditoria = new RegistroAuditoria();

            registroAuditoria.IdEmpresa         = inforAudit.Empresa;
            registroAuditoria.Registro          = inforAudit.Registro;
            registroAuditoria.IdAccionAuditable = inforAudit.Accion;
            registroAuditoria.IdModulo          = inforAudit.Modulo;
            registroAuditoria.IdUsuario         = inforAudit.IdUsuario;
            registroAuditoria.Fecha             = DateTime.Now;
            registroAuditoria.IdEmpresa         = inforAudit.Empresa;
            RegistroAuditoriaRepository.GuardarRegistroAuditoria(registroAuditoria);
        }
        public async Task <IActionResult> Post([FromBody] RegistroAuditoria registroAuditoria)
        {
            if (registroAuditoria != null)
            {
                var retorno = await _auditoriaRepository.InserirRegistroAuditoriaAsync(registroAuditoria);

                return(Ok(retorno));
            }
            else
            {
                return(BadRequest("Json de entrada não definido no corpo da requisição"));
            }
        }
Exemplo n.º 5
0
        public void AfterThrowing(Exception ex)
        {
            RegistroAuditoria registroAuditoria = new RegistroAuditoria();

            registroAuditoria.IdEmpresa         = null;
            registroAuditoria.Registro          = "Traza del Error generado en la perición: " + ex.Message + " : " + ex.StackTrace;
            registroAuditoria.IdAccionAuditable = ConstantsAccionAuditable.Actualizar;
            registroAuditoria.IdModulo          = ConstantsModulo.EditorDocumentosXBRL;
            registroAuditoria.IdUsuario         = UsuarioRepository.GetAll().First().IdUsuario;
            registroAuditoria.Fecha             = DateTime.Now;

            AbaxDbEntities ctx = new AbaxDbEntities();

            ctx.RegistroAuditoria.Add(registroAuditoria);
            ctx.SaveChanges();
        }
Exemplo n.º 6
0
        public List <RegistroAuditoria> ObtenerAuditoriaComprobante(long archivoAsociadoId)
        {
            List <RegistroAuditoria> registros = new List <RegistroAuditoria>();

            using (var ctx = new FacturaElectronicaEntities())
            {
                foreach (var dbArchivoAsoAuditoria in ctx.ArchivoAsociado_Auditoria.Where(a => a.ArchivoAsociadoId == archivoAsociadoId).OrderByDescending(a => a.Fecha))
                {
                    RegistroAuditoria ra = new RegistroAuditoria();
                    EntityMapper.Map(dbArchivoAsoAuditoria, ra);
                    ra.UsuarioNombre = dbArchivoAsoAuditoria.Usuario.NombreUsuario;
                    registros.Add(ra);
                }

                return(registros);
            }
        }
Exemplo n.º 7
0
 /// <summary>
 /// Copia el elemento evitando las referencias a objetos que proboquen redundancia ciclica cuando se serializan a JSON.
 /// </summary>
 /// <param name="o">Elemento a copiar.</param>
 /// <returns>Copia del elemento.</returns>
 public RegistroAuditoriaDto CopiaPrimeraCapa(RegistroAuditoria o)
 {
     if (o == null)
     {
         return(null);
     }
     return(new RegistroAuditoriaDto()
     {
         IdRegistroAuditoria = o.IdRegistroAuditoria,
         IdAccionAuditable = o.IdAccionAuditable,
         IdEmpresa = o.IdEmpresa,
         IdModulo = o.IdModulo,
         IdUsuario = o.IdUsuario,
         Fecha = o.Fecha,
         Registro = o.Registro
     });
 }
        public ResultadoOperacionDto GuardarRegistroAuditoria(RegistroAuditoria registroAuditoria)
        {
            var resultado = new ResultadoOperacionDto();

            try
            {
                resultado = RegistroAuditoriaRepository.GuardarRegistroAuditoria(registroAuditoria);
            }
            catch (Exception exception)
            {
                LogUtil.Error(exception);
                resultado.Resultado        = false;
                resultado.Mensaje          = exception.Message;
                resultado.InformacionExtra = exception;
            }
            return(resultado);
        }
Exemplo n.º 9
0
 /// <summary>
 /// Copia el elemento evitando las referencias a objetos que proboquen redundancia ciclica cuando se serializan a JSON.
 /// </summary>
 /// <param name="o">Elemento a copiar.</param>
 /// <returns>Copia del elemento.</returns>
 public RegistroAuditoriaDto Copia(RegistroAuditoria o)
 {
     if (o == null)
     {
         return(null);
     }
     return(new RegistroAuditoriaDto()
     {
         IdRegistroAuditoria = o.IdRegistroAuditoria,
         IdAccionAuditable = o.IdAccionAuditable,
         IdEmpresa = o.IdEmpresa,
         IdModulo = o.IdModulo,
         IdUsuario = o.IdUsuario,
         Fecha = o.Fecha,
         Registro = o.Registro,
         Usuario = Copia(o.Usuario),
         Empresa = Copia(o.Empresa),
         AccionAuditable = Copia(o.AccionAuditable),
         Modulo = Copia(o.Modulo)
     });
 }
 /// <summary>
 /// Carga los parametros de auditoría de la solicitud.
 /// </summary>
 /// <param name="registroAuditoria">Registro de auditoría.</param>
 private void CargaParemetrosAuditoriaRequest(RegistroAuditoria registroAuditoria)
 {
     try
     {
         if (HttpContext.Current != null && HttpContext.Current.Items != null)
         {
             if (registroAuditoria.IdUsuario == 0)
             {
                 registroAuditoria.IdUsuario = (long)HttpContext.Current.Items[ConstantsWeb.ParametroAuditoriaIdUsuarioExe];
             }
             if ((registroAuditoria.IdEmpresa == null || registroAuditoria.IdEmpresa == 0) &&
                 HttpContext.Current.Items.Contains(ConstantsWeb.ParametroAuditoriaIdEmpresaExe))
             {
                 registroAuditoria.IdEmpresa = (long?)HttpContext.Current.Items[ConstantsWeb.ParametroAuditoriaIdEmpresaExe];
             }
         }
     }
     catch (Exception ex)
     {
         LogUtil.Error(ex);
     }
 }
        public async Task <string> InserirRegistroAuditoriaAsync(RegistroAuditoria registroAuditoria)
        {
            RegistrosAuditoriaMock.Add(registroAuditoria);

            return(await Task.Run(() => "Registro inserido com sucesso na auditoria"));
        }