Esempio n. 1
0
        /// <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;
            }
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
 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;
 }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
        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)
 {
 }