Esempio n. 1
0
        /// <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);
            });
        }
Esempio n. 2
0
        /// <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);
            });
        }