/// <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}"); }
/// <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(); } }