Example #1
0
        public IList <MonitoringAlert> GetAlertByComputerName(string ComputerName, bool?IncClosed = false)
        {
            if (string.IsNullOrEmpty(ComputerName))
            {
                throw new HttpResponseException(Request
                                                .CreateResponse(HttpStatusCode.BadRequest));
            }

            //If include closed alerts
            if (IncClosed == true)
            {
                //Set alert criteria
                var Criteria = string.Format("MonitoringObjectPath = '{0}'", ComputerName);
                //Get alerts
                MonitoringAlertCriteria alertCriteria = new MonitoringAlertCriteria(Criteria);
                var Alert = mg.OperationalData.GetMonitoringAlerts(alertCriteria, default(DateTime));

                return(Alert);
            }

            else
            {
                //set alert criteria
                var Criteria = string.Format("MonitoringObjectPath = '{0}' AND ResolutionState = 0", ComputerName);
                //Get alerts
                MonitoringAlertCriteria alertCriteria = new MonitoringAlertCriteria(Criteria);
                var Alert = mg.OperationalData.GetMonitoringAlerts(alertCriteria, default(DateTime));

                return(Alert);
            }
        }
Example #2
0
        public IList <MonitoringAlert> GetAlerts()
        {
            MonitoringAlertCriteria alertCriteria = new MonitoringAlertCriteria("ResolutionState = '0'");

            var OpenAlerts = mg.OperationalData.GetMonitoringAlerts(alertCriteria, default(DateTime));

            return(OpenAlerts);
        }
Example #3
0
        public IList <MonitoringAlert> GetAlertById(Guid Id)
        {
            if (Id == Guid.Empty)
            {
                throw new HttpResponseException(Request
                                                .CreateResponse(HttpStatusCode.BadRequest));
            }

            var Criteria = string.Format("Id = '{0}'", Id);

            MonitoringAlertCriteria alertCriteria = new MonitoringAlertCriteria(Criteria);
            var Alert = mg.OperationalData.GetMonitoringAlerts(alertCriteria, default(DateTime));

            return(Alert);
        }
Example #4
0
        public IList <MonitoringAlert> UpdateAlertById([FromUri()] Guid Id, [FromBody()] SCOMAlertUpdateModel Properties)
        {
            if (Id == Guid.Empty)
            {
                throw new HttpResponseException(Request
                                                .CreateResponse(HttpStatusCode.BadRequest));
            }

            // Declare variables
            var ResolutionState = Properties.resolutionState;

            //alert criteria
            var Criteria = string.Format("Id = '{0}'", Id);
            MonitoringAlertCriteria alertCriteria = new MonitoringAlertCriteria(Criteria);
            var alerts = mg.OperationalData.GetMonitoringAlerts(alertCriteria, default(DateTime));

            foreach (MonitoringAlert a in alerts)
            {
                //If resolution state is set to closed and alert is raised by a monitor. Reset the monitor
                if (a.IsMonitorAlert & ResolutionState == "255")
                {
                    //Get object and monitor that raised the alert
                    Guid monitoringObjectId = a.MonitoringObjectId;
                    var  monitorId          = a.RuleId;
                    var  monitor            = mg.Monitoring.GetMonitor(monitorId);
                    var  monObject          = mg.EntityObjects.GetObject <MonitoringObject>(monitoringObjectId, ObjectQueryOptions.Default);
                    //reset the monitor to 'close' the alert
                    monObject.ResetMonitoringState(monitor);
                }


                else
                {
                    if (string.IsNullOrEmpty(ResolutionState))
                    {
                        a.TfsWorkItemId    = Properties.tfsWorkItemId;
                        a.TfsWorkItemOwner = Properties.tfsWorkItemOwner;
                        a.Owner            = Properties.owner;
                        a.CustomField1     = Properties.customField1;
                        a.CustomField2     = Properties.customField2;
                        a.CustomField3     = Properties.customField3;
                        a.CustomField4     = Properties.customField4;
                        a.CustomField5     = Properties.customField5;
                        a.CustomField6     = Properties.customField6;
                        a.CustomField7     = Properties.customField7;
                        a.CustomField8     = Properties.customField8;
                        a.CustomField9     = Properties.customField9;
                        a.CustomField10    = Properties.customField10;

                        string comment = "Alert properties updated";
                        a.Update(comment);
                    }
                    //If resolution state is specified
                    else
                    {
                        a.TfsWorkItemId    = Properties.tfsWorkItemId;
                        a.TfsWorkItemOwner = Properties.tfsWorkItemOwner;
                        a.Owner            = Properties.owner;
                        a.CustomField1     = Properties.customField1;
                        a.CustomField2     = Properties.customField2;
                        a.CustomField3     = Properties.customField3;
                        a.CustomField4     = Properties.customField4;
                        a.CustomField5     = Properties.customField5;
                        a.CustomField6     = Properties.customField6;
                        a.CustomField7     = Properties.customField7;
                        a.CustomField8     = Properties.customField8;
                        a.CustomField9     = Properties.customField9;
                        a.CustomField10    = Properties.customField10;

                        //Convert string resolution state to byte type
                        var Res = Convert.ToByte(ResolutionState);
                        a.ResolutionState = Res;
                        a.TicketId        = Properties.ticketId;
                        var    comments = $"Updated and changed resolution state: {ResolutionState}";
                        string comment  = comments;
                        a.Update(comment);
                    }
                }
            }
            return(alerts);
        }