Exemple #1
0
        override protected void Append(LoggingEvent loggingEvent)
        {
            // Skip if DNN Dev Tools is not installed (to prevent errors with log messages just after module has been uninstalled)
            if (!ModuleUtil.IsInstalled())
            {
                return;
            }

            // Create log event
            var logMessageEvent = new LogMessage(loggingEvent);

            // Queue logging event
            LogMessageQueue.Enqueue(logMessageEvent);
            if (LogMessageQueue.Count > QueueSize)
            {
                LogMessage l;
                LogMessageQueue.TryDequeue(out l);
            }

            // Send log event to clients if log level is not too low
            var level = ServiceLocator.ConfigService.GetLogMessageTraceLevel();

            if (level.Value > loggingEvent.Level.Value)
            {
                return;
            }
            GlobalHost.ConnectionManager.GetHubContext <DnnDevToolsNotificationHub>().Clients.All.OnEvent(logMessageEvent);
        }
Exemple #2
0
        private void OnCreated(object source, FileSystemEventArgs e)
        {
            // Do nothing if module has been uninstalled
            if (!ModuleUtil.IsInstalled())
            {
                return;
            }

            // Do nothing, if DNN Dev Tools or mail catch is not enabled
            if (!ServiceLocator.ConfigService.GetEnable() || !ServiceLocator.ConfigService.GetEnableMailCatch())
            {
                return;
            }

            Logger.DebugFormat("New mail in pickup folder detected (File: {0})", e.FullPath);

            // Start new background thread and wait until file is completely written and no longer locked
            new Thread(() =>
            {
                var start = DateTime.Now;
                var file  = new FileInfo(e.FullPath);
                while (true)
                {
                    Thread.Sleep(100);

                    // Break if file is not released after max timeout
                    if (start - DateTime.Now > new TimeSpan(0, 0, 1))
                    {
                        break;
                    }

                    // Test if file is still locked
                    if (FileUtil.IsFileLocked(file))
                    {
                        continue;
                    }

                    // Try to parse mail
                    var message = EmlFileParser.ParseEmlFile(e.FullPath);
                    if (message == null)
                    {
                        return;
                    }

                    // Send mail notification to clients
                    var mail = new Mail(System.IO.Path.GetFileNameWithoutExtension(e.Name), message);
                    GlobalHost.ConnectionManager.GetHubContext <DnnDevToolsNotificationHub>().Clients.All.OnEvent(mail);

                    break;
                }
            }).Start();
        }
Exemple #3
0
        private static void OnReleaseRequestState(object sender, EventArgs e)
        {
            // Do nothing if module has been uninstalled
            if (!ModuleUtil.IsInstalled())
            {
                return;
            }

            var request = HttpContext.Current.Request;

            if (!"~/DesktopModules/DnnDevTools/Overlay.aspx".Equals(request.AppRelativeCurrentExecutionFilePath, StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            HttpContext.Current.Response.Filter = new OverlayLocalizeResourceFilter(HttpContext.Current.Response.Filter);
        }
Exemple #4
0
        private static void OnPreRequestHandlerExecute(object sender, EventArgs e)
        {
            // Do nothing if module has been uninstalled
            if (!ModuleUtil.IsInstalled())
            {
                return;
            }

            var context = HttpContext.Current;

            var page = context?.Handler as CDefault;

            if (page == null)
            {
                return;
            }

            page.Init += OnPageInit;
        }
Exemple #5
0
        internal void Run()
        {
            Logger.Debug("Initializing DNN event trace");

            var lastLog = DateTime.Now;

            new Thread(() =>
            {
                var totalRecords = 0;
                while (true)
                {
                    Thread.Sleep(1000);

                    // Do nothing if module has been uninstalled
                    if (!ModuleUtil.IsInstalled())
                    {
                        return;
                    }

                    // Skip if DnnDevTools or EnableEventCatch is not enabled
                    if (!ServiceLocator.ConfigService.GetEnable() || !ServiceLocator.ConfigService.GetEnableDnnEventTrace())
                    {
                        return;
                    }

                    // Get last 100 log entries
                    var logs = LogController.Instance.GetLogs(Null.NullInteger, Null.NullString, 100, 0, ref totalRecords);

                    var newLogs = logs.Where(e => e.LogCreateDate > lastLog).ToList();
                    lastLog     = logs.Max(e => e.LogCreateDate);

                    // ReSharper disable once LoopCanBePartlyConvertedToQuery
                    foreach (var newLog in newLogs)
                    {
                        // Send DNN event notification to clients
                        var eventNotification = new DnnEvent(newLog);
                        GlobalHost.ConnectionManager.GetHubContext <DnnDevToolsNotificationHub>().Clients.All.OnEvent(eventNotification);
                    }
                }
            }).Start();
        }