private Source CreateSource( IMonitoringSourceConfiguration source, IEnumerable <MonitoringResult> results) { var sourceResult = results.FirstOrDefault(result => result.Type == MonitoringType.Website); var sourceModel = new Source { Name = source.Name, Url = source.Url, MonitorCPU = source.MonitorCPU, Status = sourceResult?.Status, Message = sourceResult?.Message }; var pairs = from database in source.Databases join result in results.Where(result => result.Type == MonitoringType.Database) on database.Name equals result.Name into matched from match in matched.DefaultIfEmpty() select new { database, result = match }; foreach (var pair in pairs) { sourceModel.Databases.Add(new Database { Name = pair.database.Name, Status = pair.result?.Status, Message = pair.result?.Message }); } return(sourceModel); }
public CPUUsageMonitoringCommand( IMonitoringEnvironmentConfiguration environment, IMonitoringSourceConfiguration source) { Type = MonitoringType.Website; Environment = environment.Name; Group = source.Group; Source = source.Name; Name = source.Name; Connection = source.ApplicationPool; }
public DatabaseMonitoringCommand( IMonitoringEnvironmentConfiguration environment, IMonitoringSourceConfiguration source, IMonitoringDatabaseConfiguration database) { Type = MonitoringType.Database; Environment = environment.Name; Group = source.Group; Source = source.Name; Name = database.Name; Connection = database.ConnectionString; }