/// <summary> /// Handle request to get the alerts list /// </summary> internal async Task HandleAgentAlertsRequest(AgentAlertsParams parameters, RequestContext <AgentAlertsResult> requestContext) { await Task.Run(async() => { var result = new AgentAlertsResult(); try { ConnectionInfo connInfo; ConnectionServiceInstance.TryFindConnection(parameters.OwnerUri, out connInfo); CDataContainer dataContainer = CDataContainer.CreateDataContainer(connInfo, databaseExists: true); int alertsCount = dataContainer.Server.JobServer.Alerts.Count; var alerts = new AgentAlertInfo[alertsCount]; for (int i = 0; i < alertsCount; ++i) { var alert = dataContainer.Server.JobServer.Alerts[i]; alerts[i] = new AgentAlertInfo { Id = alert.ID, Name = alert.Name, DelayBetweenResponses = alert.DelayBetweenResponses, EventDescriptionKeyword = alert.EventDescriptionKeyword, EventSource = alert.EventSource, HasNotification = alert.HasNotification, IncludeEventDescription = (Contracts.NotifyMethods)alert.IncludeEventDescription, IsEnabled = alert.IsEnabled, JobId = alert.JobID.ToString(), JobName = alert.JobName, LastOccurrenceDate = alert.LastOccurrenceDate.ToString(), LastResponseDate = alert.LastResponseDate.ToString(), MessageId = alert.MessageID, NotificationMessage = alert.NotificationMessage, OccurrenceCount = alert.OccurrenceCount, PerformanceCondition = alert.PerformanceCondition, Severity = alert.Severity, DatabaseName = alert.DatabaseName, CountResetDate = alert.CountResetDate.ToString(), CategoryName = alert.CategoryName, AlertType = (Contracts.AlertType)alert.AlertType, WmiEventNamespace = alert.WmiEventNamespace, WmiEventQuery = alert.WmiEventQuery }; } result.Alerts = alerts; result.Success = true; } catch (Exception ex) { result.Success = false; result.ErrorMessage = ex.ToString(); } await requestContext.SendResult(result); }); }
/// <summary> /// Handle request to get the alerts list /// </summary> internal async Task HandleAgentAlertsRequest(AgentAlertsParams parameters, RequestContext <AgentAlertsResult> requestContext) { await Task.Run(async() => { var result = new AgentAlertsResult(); result.Alerts = new List <AgentAlertInfo>().ToArray(); ConnectionInfo connInfo; ConnectionServiceInstance.TryFindConnection(parameters.OwnerUri, out connInfo); if (connInfo != null) { CDataContainer dataContainer = CDataContainer.CreateDataContainer(connInfo, databaseExists: true); AlertCollection alerts = dataContainer.Server.JobServer.Alerts; } await requestContext.SendResult(result); }); }