Ejemplo n.º 1
0
 public static List<SourcedAdoNetLog> FilterLogs(this List<SourcedAdoNetLog> unfilteredLogs , LogViewerParamModel filterModel )
 {
     var filteredLogs = filterModel.LogLevel != null ? unfilteredLogs.Where(x => ( x.Level != null && x.Level.ToLowerInvariant() == filterModel.LogLevel.ToLowerInvariant())) : unfilteredLogs;
     filteredLogs = filterModel.Thread != null ? filteredLogs.Where(x => ( x.Thread != null && x.Thread.ToLowerInvariant() == filterModel.Thread.ToLowerInvariant())) : filteredLogs;
     filteredLogs = filterModel.LoggerType != null ?
         filteredLogs.Where(x => (x.Logger != null && x.Logger.ToLowerInvariant() == filterModel.LoggerType.ToLowerInvariant())) :
         filteredLogs;
     if(filterModel.StartDate.HasValue && filterModel.EndDate.HasValue)
         filteredLogs = filteredLogs.Where(x => x.Date >= filterModel.StartDate && x.Date <= filterModel.EndDate); // EndDate.AddSeconds(1) ??
     else {
         filteredLogs = filterModel.StartDate.HasValue ? filteredLogs.Where(x => x.Date >= filterModel.StartDate) : filteredLogs;
         filteredLogs = filterModel.EndDate.HasValue ? filteredLogs.Where(x => x.Date <= filterModel.EndDate) : filteredLogs; // EndDate.AddSeconds(1) ??
     }
     return filteredLogs.ToList();
 }
Ejemplo n.º 2
0
        public ActionResult Index(LogViewerParamModel model)
        {
            var selectedConnections = new List<string>();
            if (model.Lumberjack != null && (model.Lumberjack.ToLowerInvariant() == "on" || model.Lumberjack.ToLowerInvariant() == "true")) selectedConnections.Add("Lumberjack");
            if (model.JustBlogging != null && (model.JustBlogging.ToLowerInvariant() == "on" || model.JustBlogging.ToLowerInvariant() == "true")) selectedConnections.Add("JustBlogging");

            var connectionList = new List<string>();
            connectionList.AddRange(MvcApplication.ConnectionList.Select(pair => pair.Key));
            connectionList.Add("LogsGoHereEmail");

            IEnumerable<String> distinctLoggers = new List<String>();

            var allLogs = new List<SourcedAdoNetLog>();
            foreach (var conn in selectedConnections)
            {
                var connMap = MvcApplication.ConnectionList.FirstOrDefault(x => x.Key == conn).Value;
                var tableName = "Log";
                var logViewerManager = LogViewerManagerFactory.CreateManager(null, null, connMap);
                {
                    allLogs.AddRange(logViewerManager.FilteredLogs(tableName, conn, model.LogLevel, model.StartDate, model.EndDate, model.LoggerType, model.Thread));
                    distinctLoggers = distinctLoggers.Concat(LogViewerManager.GetDistinctLoggersList(tableName));
                }
            }
            if (model.LogsGoHereEmail != null && (model.LogsGoHereEmail.ToLowerInvariant() == "on" || model.LogsGoHereEmail.ToLowerInvariant() == "true")) {
                var emailLogs = EmailHelper.ImapGetLogEmails(50);
                allLogs.AddRange(emailLogs.FilterLogs(model));
                distinctLoggers = distinctLoggers.Concat(emailLogs.Select(x => x.Logger).Distinct());
            }

            ViewBag.LogLevel = new SelectList(LogViewerManager.GetLogLevelList());
            ViewBag.LoggerType = new SelectList(distinctLoggers.Where(x => x != null).Distinct());

            return View( new LogViewerViewModel
            {
                Logs = allLogs.OrderByDescending(x => x.Date),
                ConnectionList = connectionList
            });
        }