private List<Alert> getNewAlerts(string ddc) { string endDate = DateTime.UtcNow.ToString("yyyy-MM-dd"); string endTime = DateTime.UtcNow.ToString("HH:mm:ss"); string startTime = DateTime.UtcNow.AddMinutes(-1).ToString("HH:mm:ss"); string odatastart = endDate + "T" + startTime; string odataend = endDate + "T" + endTime; string Odataurl = "http://" + ddc + "/Citrix/Monitor/OData/v3/data/Notifications()?";// Notifications()?$filter=NotificationRule/IsAggregate eq false and NotificationPriority eq 1 and LifecycleState eq 1 string param = "$filter=NotificationRule/IsAggregate eq false and LifecycleState eq 1 and FirstTimeNotificationTriggered gt datetime'" + odatastart + "'";// +" or NotificationStateChangeDate gt datetime'"+ odatastart+"'"; string Odataquery = Odataurl + param; string Odatadetails = "http://" + ddc + "/Citrix/Monitor/OData/v3/methods/GetNotificationDetails()?"; XmlDocument odataresult = doOdataquery(Odataquery); XmlNamespaceManager ns = new XmlNamespaceManager(odataresult.NameTable); ns.AddNamespace("d", "http://schemas.microsoft.com/ado/2007/08/dataservices"); XmlNodeList entry = odataresult.GetElementsByTagName("entry"); //XmlNodeList alertlist = content[0].ChildNodes; List<Alert> alertobjlist = new List<Alert>(); foreach (XmlNode node in entry) { XmlNode Id = node.SelectSingleNode(".//d:Id", ns); string notificationId = Id.InnerText; string odataquery = "notificationId=" + "'" + notificationId + "'" + "&sortField='Date'&sortOrder='Desc'&offset=0&count=50"; XmlDocument result = doOdataquery(Odatadetails + odataquery); // XmlNodeList parentNode = result.GetElementsByTagName("GetNotificationDetails"); XmlNode scope = result.SelectSingleNode(".//d:ScopeName", ns); XmlNode source = result.SelectSingleNode(".//d:TargetName", ns); XmlNode category = result.SelectSingleNode(".//d:Category", ns); XmlNode condition = result.SelectSingleNode(".//d:Threshold", ns); XmlNode state = result.SelectSingleNode(".//d:NotificationState", ns); Alert obj = new Alert(); obj.scope = scope.InnerText; obj.source = source.InnerText; obj.condition = category.InnerText + " >= " + condition.InnerText; switch (state.InnerText) { case "1": obj.severity = "Warning"; break; case "2": obj.severity = "Critical"; break; case "3": continue; case "4": continue; default: continue; } alertobjlist.Add(obj); } return alertobjlist; }
private List<Alert> getLastTwoHourAlerts(string ddcip) { string endDate = DateTime.UtcNow.ToString("yyyy-MM-dd"); string endTime = DateTime.UtcNow.ToString("HH:mm:ss"); string startTime = DateTime.UtcNow.AddHours(-2).ToString("HH:mm:ss"); string odatastart = endDate + "T" + startTime; string odataend = endDate + "T" + endTime; string Odataurl = "http://" + ddcip + "/Citrix/Monitor/OData/v3/methods/GetNotificationSummary()?";// notificationTypeFilterString=''¬ificationSourceTypeFilter=''&sourceId=''&categoryFilterString=''&startDate=datetime'2015-10-28T13:07:00'&endDate=datetime'2015-10-28T15:07:00'&sortField='Date'&sortOrder='Desc'&offset=0&count=50"; string param = "notificationTypeFilterString=" + "'" + "'&" + "source=" + "'" + "'&" + "categoryFilterString=" + "'" + "'&" + "startDate=datetime" + "'" + odatastart + "'&" + "endDate=datetime" + "'" + odataend + "'&" + "sortField='Date'&sortOrder='Asc'&offset=0&count=50"; string Odataquery = Odataurl + param; try { XmlDocument odataresult = doOdataquery(Odataquery); XmlNamespaceManager ns = new XmlNamespaceManager(odataresult.NameTable); ns.AddNamespace("d", "http://schemas.microsoft.com/ado/2007/08/dataservices"); ns.AddNamespace("m", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"); XmlNodeList entry = odataresult.GetElementsByTagName("entry"); Console.WriteLine(entry.Count); //XmlNodeList alertlist = content[0].ChildNodes; List<Alert> alertobjlist = new List<Alert>(); foreach (XmlNode node in entry) { Alert obj = new Alert(); XmlNode scope = node.SelectSingleNode(".//d:Scope", ns); XmlNode source = node.SelectSingleNode(".//d:SourceName", ns); XmlNode category = node.SelectSingleNode(".//d:Category", ns); XmlNode condition = node.SelectSingleNode(".//d:Threshold", ns); XmlNode state = node.SelectSingleNode(".//d:NotificationState", ns); XmlNode pname = node.SelectSingleNode(".//d:PolicyName", ns); XmlNode id = node.SelectSingleNode(".//d:NotificationId", ns); obj.scope = scope.InnerText; obj.source = source.InnerText; obj.condition = category.InnerText + " >= " + condition.InnerText; Console.WriteLine(state.InnerText); Console.WriteLine(pname.InnerText); Console.WriteLine(id.InnerText); switch (state.InnerText) { case "1": obj.severity = "Warning"; break; case "2": obj.severity = "Critical"; break; case "3": continue; case "4": continue; default: continue; } alertobjlist.Add(obj); Console.Write(scope.Value); } //Console.Write(odataresult); return alertobjlist; } catch (Exception e) { Console.WriteLine(e.Data); return null; } }