Exemple #1
0
        /// <summary>
        /// Adds the log.
        /// </summary>
        /// <param name="rockContext">The rock context.</param>
        /// <param name="severity">The severity.</param>
        /// <param name="subjectNodeId">The subject node identifier.</param>
        /// <param name="eventType">Type of the event.</param>
        /// <param name="text">The text.</param>
        private static void AddLog(RockContext rockContext, WebFarmNodeLog.SeverityLevel severity, int subjectNodeId, string eventType, string text = "")
        {
            var webFarmNodeLogService = new WebFarmNodeLogService(rockContext);

            webFarmNodeLogService.Add(new WebFarmNodeLog
            {
                Severity            = severity,
                WriterWebFarmNodeId = _nodeId,
                WebFarmNodeId       = subjectNodeId,
                Message             = $"(Process ID: {ProcessId}) {text}",
                EventType           = eventType
            });

            Debug($"Logged {severity} {eventType} {text}");
        }
Exemple #2
0
        /// <summary>
        /// Binds the grid.
        /// </summary>
        private void BindGrid()
        {
            using (var rockContext = new RockContext())
            {
                gLog.DataKeyNames = new string[] { "Id" };
                var service = new WebFarmNodeLogService(rockContext);
                var query   = service.Queryable().AsNoTracking();

                // Filter by the page parameter
                var nodeId = PageParameter(PageParameterKey.WebFarmNodeId).AsIntegerOrNull();

                if (nodeId.HasValue)
                {
                    query = query.Where(l => l.WebFarmNodeId == nodeId.Value);
                }

                // Filter the results by the date range
                var startDateRange = SlidingDateRangePicker.CalculateDateRangeFromDelimitedValues(sdrpDateRange.DelimitedValues);

                if (startDateRange.Start.HasValue)
                {
                    query = query.Where(l => l.EventDateTime >= startDateRange.Start.Value);
                }

                if (startDateRange.End.HasValue)
                {
                    query = query.Where(l => l.EventDateTime <= startDateRange.End.Value);
                }

                // Filter the results by the severity
                var severity = ddlSeverity.SelectedValueAsEnumOrNull <WebFarmNodeLog.SeverityLevel>();

                if (severity.HasValue)
                {
                    query = query.Where(l => l.Severity == severity);
                }

                // Filter the results by the event type
                var eventType = ddlEventType.SelectedValue;

                if (!eventType.IsNullOrWhiteSpace())
                {
                    query = query.Where(l => l.EventType == eventType);
                }

                // Filter the results by the node
                var nodeName = tbNodeName.Text;

                if (!nodeName.IsNullOrWhiteSpace())
                {
                    query = query.Where(l => l.WebFarmNode.NodeName.Contains(nodeName));
                }

                // Filter the results by the writer node
                var writerNodeName = tbWriterNodeName.Text;

                if (!writerNodeName.IsNullOrWhiteSpace())
                {
                    query = query.Where(l => l.WriterWebFarmNode.NodeName.Contains(writerNodeName));
                }

                // Filter the results by the text
                var text = tbText.Text;

                if (!text.IsNullOrWhiteSpace())
                {
                    query = query.Where(l => l.Message.Contains(text));
                }

                // Get view models
                var viewModelQuery = query.Select(wfnl => new LogViewModel
                {
                    Id             = wfnl.Id,
                    EventType      = wfnl.EventType,
                    Severity       = wfnl.Severity,
                    Text           = wfnl.Message,
                    NodeName       = wfnl.WebFarmNode.NodeName,
                    WriterNodeName = wfnl.WriterWebFarmNode.NodeName,
                    DateTime       = wfnl.EventDateTime
                });

                // Sort the query based on the column that was selected to be sorted
                var sortProperty = gLog.SortProperty;

                if (gLog.AllowSorting && sortProperty != null)
                {
                    viewModelQuery = viewModelQuery.Sort(sortProperty);
                }
                else
                {
                    viewModelQuery = viewModelQuery.OrderByDescending(vm => vm.DateTime);
                }

                gLog.SetLinqDataSource(viewModelQuery);
                gLog.DataBind();
            }
        }