/// <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. }
/// <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")); } }
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(); }
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); } }
/// <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); }
/// <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")); }