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); } }
public IList <MonitoringAlert> GetAlerts() { MonitoringAlertCriteria alertCriteria = new MonitoringAlertCriteria("ResolutionState = '0'"); var OpenAlerts = mg.OperationalData.GetMonitoringAlerts(alertCriteria, default(DateTime)); return(OpenAlerts); }
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); }
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); }