/// <summary> /// Grava a auditoria caso necessário. /// </summary> /// <param name="log_id">ID do log de auditoria</param> /// <param name="operacao">Operação a ser realizada (Insert, update ou delete)</param> /// <param name="oldValues">Valor da entidade antes da operação</param> /// <param name="newValues">Valor da entidade após a operação</param> /// <returns>True se a auditoria foi gravada corretamente</returns> protected virtual bool Auditoria(Guid log_id, TipoAuditoria operacao, string oldValues, string newValues) { LOG_AuditoriaDAL dao = new LOG_AuditoriaDAL(); try { LOG_Auditoria entity = new LOG_Auditoria() { log_id = log_id, aud_dataHora = DateTime.Now, aud_entidade = typeof(T).Name, aud_operacao = Enum.GetName(typeof(TipoAuditoria), operacao), aud_entidadeNova = newValues, aud_entidadeOriginal = oldValues }; if (entity.Validate()) { return(dao.Salvar(entity)); } else { throw new ArgumentNullException("log_id", "log_id vázio."); } } catch { throw; } }
private void CreateAudit(long idRegistro, TipoAuditoria tipoAuditoria, long idUsuario, TEntity obj = null) { var databaseFacade = databaseContext.Database; string nomeTabela = typeof(TEntity).Name; Task.Run(async() => await CreateAuditAsync(databaseFacade, nomeTabela, idRegistro, tipoAuditoria, idUsuario, obj)); }
public void EnviarEmail(TipoAuditoria tipo) { EnvioEmail.SendMail(Requerimento.UsuarioRequerente, MsgEmail, Requerimento); if (Requerimento.UsuarioRequerenteId != Requerimento.UsuarioAtendenteId) { EnvioEmail.SendMail(Requerimento.UsuarioAtendente, $"O Requerimento {Requerimento.Protocolo} foi encaminhado para você! acesse o SCIR para verificar.", Requerimento); } }
public TipoAuditoriaAddForm(bool IsModal, ClaseAuditoria item) : base(IsModal) { InitializeComponent(); _clase = item; _entity = _clase.TipoAuditorias.NewItem(_clase); SetFormData(); this.Text = Resources.Labels.TIPO_AUDITORIA_TITLE; }
public TipoAuditoriaEditForm(bool IsModal, ClaseAuditoria item, TipoAuditoria entity) : base(IsModal) { InitializeComponent(); _clase = item; _entity = entity; SetFormData(); this.Text = Resources.Labels.TIPO_AUDITORIA_TITLE; }
public async static Task Auditar(object objeto, TipoAuditoria tipoAuditoria, string usuario) { var tipoObjeto = objeto.GetType().Name; using (OracleConnection con = new OracleConnection(Config.StringConexao())) { var parametros = new DynamicParameters(); parametros.Add(name: "TipoObjeto", value: objeto, direction: ParameterDirection.Input); parametros.Add(name: "Objeto", value: tipoAuditoria, direction: ParameterDirection.Input); parametros.Add(name: "TipoAuditoria", value: tipoAuditoria, direction: ParameterDirection.Input); parametros.Add(name: "Usuario", value: tipoAuditoria, direction: ParameterDirection.Input); parametros.Add(name: "Data", value: DateTime.Now, direction: ParameterDirection.Input); await con.QueryAsync(@"INSERT INTO CRM.TB_CRM_MERCADORIAS (Id, Descricao, Status) VALUES (CRM.SEQ_CRM_MERCADORIAS.NEXTVAL, :Descricao, :Status)", parametros); } }
private async Task CreateAuditAsync(DatabaseFacade databaseFacade, string nomeTabela, long idRegistro, TipoAuditoria tipoAuditoria, long idUsuario, TEntity obj = null) { switch (tipoAuditoria) { case TipoAuditoria.Insercao: { using var context = DatabaseContext.CreateContext(databaseFacade); context.Auditorias.Add(new Auditoria { NomeTabela = nomeTabela, IdRegistro = idRegistro, DataRegistro = DateTime.UtcNow, Tipo = TipoAuditoria.Insercao, IdUsuario = idUsuario }); await context.SaveChangesAsync(); break; } case TipoAuditoria.Exclusao: { string json = obj != null?System.Text.Json.JsonSerializer.Serialize(obj) : null; using var context = DatabaseContext.CreateContext(databaseFacade); context.Auditorias.Add(new Auditoria { NomeTabela = nomeTabela, IdRegistro = idRegistro, DataRegistro = DateTime.UtcNow, Tipo = TipoAuditoria.Exclusao, IdUsuario = idUsuario, Objeto = json }); await context.SaveChangesAsync(); break; } case TipoAuditoria.Alteracao: { const int limitAuditUpdate = 5; string json = obj != null?System.Text.Json.JsonSerializer.Serialize(obj) : null; using var context = DatabaseContext.CreateContext(databaseFacade); var auditorias = context.Auditorias.Where(item => item.NomeTabela == nomeTabela && item.IdRegistro == idRegistro && item.Tipo == TipoAuditoria.Alteracao)?.OrderBy(subItem => subItem.DataRegistro)?.ToList(); int count = auditorias?.Count ?? 0; int index = 0; while (count >= limitAuditUpdate) { var aud = auditorias[index]; context.Auditorias.Remove(aud); index++; count--; } context.Auditorias.Add(new Auditoria { NomeTabela = nomeTabela, IdRegistro = idRegistro, DataRegistro = DateTime.UtcNow, Tipo = TipoAuditoria.Alteracao, IdUsuario = idUsuario, Objeto = json }); await context.SaveChangesAsync(); break; } } }
public TipoAuditoriaEditForm(ClaseAuditoria item, TipoAuditoria entity) : this(true, item, entity) { }