Beispiel #1
0
        //

        /// <summary>
        /// Guarda un log con los datos suministrados en la base de datos.
        ///
        /// </summary>
        /// <param name="mensaje">Mensaje</param>
        /// <param name="excepcion">Excepcionr</param>
        /// <param name="stacktrace">StackTrace</param>
        /// <param name="usuario">Usuario ID</param>
        public static void AddLog(string mensaje, string excepcion, string stacktrace, string usuario)
        {
            try
            {
                using (AgroMarketDbContext db = new AgroMarketDbContext())
                {
                    db.ErrorLog.Add(new Entities.ErrorLog
                    {
                        Mensaje       = mensaje,
                        Excepcion     = excepcion ?? string.Empty,
                        StackTrace    = stacktrace ?? string.Empty,
                        Usuario       = usuario ?? string.Empty,
                        FechaCreacion = DateTime.Now
                    });

                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ex = ex.GetBaseException();

                try
                {
                    #region "Enviar mensaje de log y la exception al EventViewer"

                    StringBuilder _mensaje = new StringBuilder();

                    _mensaje.AppendLine($"Mensaje: {mensaje}")
                    .AppendFormat($"Excepcion: {excepcion}")
                    .AppendFormat($"StackTrace: {stacktrace}")
                    .Append($"Usuario ID: {usuario}")
                    .AppendLine()     // Linea en blanco intencional
                    .AppendLine()     // Linea en blanco intencional
                    .AppendFormat($"StackTrace: {stacktrace}");

                    LogToEventViewer(_mensaje.ToString(), EventLogEntryType.Error);

                    #endregion
                }
                catch
                {
                    // Do nothing
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Valida la session de un usuario.
        /// </summary>
        /// <param name="userName">User Name</param>
        /// <param name="token">Token</param>
        /// <returns>True si es válida, false en caso contrario</returns>
        public static bool IsSessionValid(string userName, string token)
        {
            try
            {
                using (var db = new AgroMarketDbContext())
                {
                    var _user = db.Usuarios.FirstOrDefault(x => x.NombreUsuario == userName);

                    if (_user != null)
                    {
                        return(db.Sesiones.Any(x => x.UsuarioId == _user.Id && x.Token == token && x.Activo)); // TODO: Validar por fecha de expiracion tambien
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.AddLog(ex.Message, ex.ToString(), ex.StackTrace.ToString(), userName);
            }

            return(false);
        }
Beispiel #3
0
 /// <summary>
 /// Guarda el log de acceso de un usuario.
 /// </summary>
 /// <param name="userName">Usuario ID</param>
 /// <param name="solicitud">Solicitud ID</param>
 /// <param name="endpoint">Endpoint</param>
 public static void AddAccesoLog(string userName, string solicitud, string endpoint)
 {
     try
     {
         using (AgroMarketDbContext db = new AgroMarketDbContext())
         {
             db.AccesoLog.Add(
                 new Entities.AccesoLog {
                 Solicitud     = solicitud,
                 Endpoint      = endpoint,
                 FechaCreacion = DateTime.Now,
                 Usuario       = userName
             });
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         AddLog(ex.Message, ex.ToString(), ex.StackTrace.ToString(), userName);
     }
 }