/// <summary>
        /// Configura e retorna a mensagem padrão do log de sistema para as ações de insert, update e delete.
        /// </summary>
        /// <typeparam name="T">Classe referente a entidade principal.</typeparam>
        /// <param name="acao">Tipo do log de sistema.</param>
        /// <param name="entity">Entidade principal do módulo.</param>
        /// <returns>Mensagem padronizada formatada conforme a ação(insert, update ou delete).</returns>
        public static string GetDescricaoDIU <T>(LOG_SistemaTipo acao, T entity)
        {
            Type   t   = typeof(T);
            string ids = String.Empty;

            PropertyInfo[] properties = t.GetProperties(BindingFlags.Public | BindingFlags.Instance);
            foreach (PropertyInfo p in properties)
            {
                DataObjectFieldAttribute[] attrs = (DataObjectFieldAttribute[])p.GetCustomAttributes(typeof(DataObjectFieldAttribute), true);
                foreach (DataObjectFieldAttribute a in attrs)
                {
                    if (a.PrimaryKey)
                    {
                        if (!String.IsNullOrEmpty(ids))
                        {
                            ids += String.Format("\"{0}\" : \"{1}\"", p.Name, p.GetValue(entity, null));
                        }
                        else
                        {
                            ids += String.Format("\"{0}\" : \"{1}\"", p.Name, p.GetValue(entity, null));
                        }
                    }
                }
            }
            ids = String.Concat("{", ids, "}");
            return(GetDescricaoDIU(acao, t.Name, ids));
        }
        /// <summary>
        /// Configura e retorna a mensagem padrão do log de sistema para as ações de insert, update e delete.
        /// </summary>
        /// <param name="acao">Tipo do log de sistema.</param>
        /// <param name="entidade">Nome da entidade principal do módulo.</param>
        /// <param name="id">ids da entidade principal.</param>
        /// <returns>Mensagem padronizada formatada conforme a ação(insert, update ou delete).</returns>
        public static string GetDescricaoDIU(LOG_SistemaTipo acao, string entidade, string id)
        {
            switch (acao)
            {
            case LOG_SistemaTipo.Insert:
                return(String.Format(messageInsert, entidade, id));

            case LOG_SistemaTipo.Update:
                return(String.Format(messageUpdate, entidade, id));

            case LOG_SistemaTipo.Delete:
                return(String.Format(messageDelete, entidade, id));

            default:
                throw new ArgumentOutOfRangeException("acao", "Somente são permitidos os tipos de ação Insert, Update e Delete.");
            }
        }
示例#3
0
 /// <summary>
 /// Grava log de sistema no banco de dados.
 /// </summary>
 /// <param name="acao">Ação executada pelo usuário</param>
 /// <param name="descricao">Descrição do log</param>
 /// <param name="usu_login">Login do usuário que tentou realizar a operação (utilizado para operações de login sem sucesso)</param>
 /// <returns>Informa se o log de sistema foi salvo com sucesso.</returns>
 public static Guid _GravaLogSistema(LOG_SistemaTipo acao, string descricao)
 {
     try
     {
         LOG_Sistema entity = new LOG_Sistema();
         entity.log_acao      = Enum.GetName(typeof(LOG_SistemaTipo), acao);
         entity.log_dataHora  = DateTime.Now;
         entity.log_descricao = descricao;
         if (HttpContext.Current != null)
         {
             //Preenche dados do host do site
             LOG_SistemaBO.GenerateLogID();
             entity.log_id          = new Guid(HttpContext.Current.Session[LOG_Sistema.SessionName].ToString());
             entity.log_ip          = HttpContext.Current.Request.UserHostAddress;
             entity.log_machineName = HttpContext.Current.Server.MachineName;
             if (HttpContext.Current.Session != null)
             {
                 SessionWEB session = (SessionWEB)HttpContext.Current.Session[SessSessionWEB];
                 if (session != null)
                 {
                     //Preenche dados referente ao usuário
                     if (session.__UsuarioWEB != null && session.__UsuarioWEB.Usuario != null)
                     {
                         entity.usu_id    = session.__UsuarioWEB.Usuario.usu_id;
                         entity.usu_login = session.__UsuarioWEB.Usuario.usu_login;
                     }
                     //Preenche dados referente ao grupo do usuário
                     if (session.__UsuarioWEB != null && session.__UsuarioWEB.Grupo != null)
                     {
                         //Preenche os dados do grupo
                         entity.gru_id   = session.__UsuarioWEB.Grupo.gru_id;
                         entity.gru_nome = session.__UsuarioWEB.Grupo.gru_nome;
                         //Preenche os dados do sistema
                         SYS_Sistema sistema = new SYS_Sistema
                         {
                             sis_id = session.__UsuarioWEB.Grupo.sis_id
                         };
                         SYS_SistemaBO.GetEntity(sistema);
                         entity.sis_id   = sistema.sis_id;
                         entity.sis_nome = sistema.sis_nome;
                         //Preenche os dados do módulo
                         if (HttpContext.Current.Session[SYS_Modulo.SessionName] != null)
                         {
                             SYS_Modulo modulo = (SYS_Modulo)HttpContext.Current.Session[SYS_Modulo.SessionName];
                             entity.mod_id   = modulo.mod_id;
                             entity.mod_nome = modulo.mod_nome;
                         }
                         else
                         {
                             entity.mod_id   = 0;
                             entity.mod_nome = string.Empty;
                         }
                         //Preenche as entidades e unidades administrativa do grupo
                         if (session.__UsuarioWEB.GrupoUA != null)
                         {
                             //Formata a entidade no padrão JSON
                             JavaScriptSerializer oSerializer = new JavaScriptSerializer();
                             entity.log_grupoUA = oSerializer.Serialize(session.__UsuarioWEB.GrupoUA);
                         }
                     }
                 }
             }
         }
         if (!LOG_SistemaBO.Save(entity))
         {
             throw new Exception("Não foi possível salvar o log do sistema.");
         }
         if (HttpContext.Current != null)
         {
             HttpContext.Current.Session[LOG_Sistema.SessionName] = null;
         }
         return(entity.log_id);
     }
     catch (Exception)
     {
         throw;
     }
 }