internal List <MetricAlert> Get(MediaServicesSetConfig config, string originId, AlertsQuery query) { //var origId = originId.GuidToOriginId(); var originAlerts = GetAlertsFromCache <OriginAlert>(originId); if (originAlerts == null) { var dataAccess = new AzureDataAccess(config.DataStorageConnections); if (query.StatusLevels == null) { originAlerts = dataAccess.GetOriginAlerts(originId); } else { originAlerts = dataAccess.GetOriginAlerts(originId, query.StatusLevels); } } List <MetricAlert> alerts = new List <MetricAlert>(); if (originAlerts != null && originAlerts.Count > 0) { foreach (var orgAlt in originAlerts) { alerts.Add(new MetricAlert { AlertID = orgAlt.AlertID, Name = orgAlt.OriginName, Date = orgAlt.AlertDate.AddTicks(orgAlt.AlertTime.Ticks), Description = orgAlt.Details, Status = orgAlt.ErrorLevel }); } } return(alerts); }
internal IEnumerable <MetricAlert> Get(MediaServicesSetConfig config, string originId, AlertsQuery query) { var endTime = DateTime.UtcNow; var startTime = endTime.AddHours(-1); HealthStatus[] healthLevels = null; if (query != null) { if (query.StartTime != default(DateTime)) { startTime = query.StartTime.ToUniversalTime(); } if (query.EndTime != default(DateTime)) { endTime = query.EndTime.ToUniversalTime(); } if (endTime <= startTime) { throw new HttpResponseException(System.Net.HttpStatusCode.BadRequest); } healthLevels = query.StatusLevels; } //var origId = originId.GuidToOriginId(); string alertstring = CloudCache.Get(originId + "Alerts"); List <OriginAlert> originAlerts; if (alertstring != null) { originAlerts = JsonConvert.DeserializeObject <List <OriginAlert> >(alertstring); } else { var dataAccess = new AzureDataAccess(config.DataStorageConnections); if (healthLevels == null) { originAlerts = dataAccess.GetOriginAlerts(originId); } else { originAlerts = dataAccess.GetOriginAlerts(originId, healthLevels); } } List <MetricAlert> alerts = new List <MetricAlert>(); if (originAlerts != null && originAlerts.Count > 0) { foreach (var orgAlt in originAlerts) { alerts.Add(new MetricAlert { AlertID = orgAlt.AlertID, Name = orgAlt.OriginName, Date = orgAlt.AlertDate.AddTicks(orgAlt.AlertTime.Ticks), Description = orgAlt.Details, Status = orgAlt.ErrorLevel }); } } return(alerts); }