private static MetricViewModel FillObject(DbDataReader reader, DbDataReader readerTest, DbDataReader readerService) { MetricViewModel Servicemetrics = new MetricViewModel(); Servicemetrics.ServiceProfile = reader.GetString(2); Servicemetrics.NumberBugs = reader.GetInt32(3); Servicemetrics.NumberVulnerabilities = reader.GetInt32(4); Servicemetrics.NumberCodeSmells = reader.GetInt32(5); Servicemetrics.Coverage = reader.GetDecimal(6); Servicemetrics.Duplication = reader.GetDecimal(7); Servicemetrics.Size = reader.GetInt32(8); Servicemetrics.Complexity = reader.GetInt32(9); Servicemetrics.Documentation = reader.GetDecimal(10); Servicemetrics.ServiceName = readerService.GetString(1); Servicemetrics.DirectionName = readerService.GetString(2); Servicemetrics.TeamName = readerService.GetString(3); if (readerTest.Read()) { if (!readerTest.IsDBNull(8)) { Servicemetrics.PassedTests = readerTest.GetInt32(8); } if (!readerTest.IsDBNull(6)) { Servicemetrics.TotalTests = readerTest.GetInt32(6); } } return(Servicemetrics); }
public static List <MetricViewModel> GetLastestMetrics(IConfigurationRoot configuration) { DbDataReader reader = null; List <MetricViewModel> Metrics = new List <MetricViewModel>(); MySqlConnection myConnectionServices = new MySqlConnection(configuration["connectionString"]); MySqlConnection myConnectionMetrics = new MySqlConnection(configuration["connectionString"]); MySqlConnection myConnectionTests = new MySqlConnection(configuration["connectionString"]); myConnectionServices.Open(); myConnectionMetrics.Open(); myConnectionTests.Open(); //string queryServices = "select ServiceID, serviceName from serviceinformation"; string queryServices = "SELECT ServiceID, ServiceName, DirectionName, DirectionteamName FROM serviceinformation se, teamdirection te, direction di where se.DirectionTeamID = te.DirectionTeamID and te.DirectionID = di.DirectionID"; MySqlCommand commandServices = new MySqlCommand(queryServices, myConnectionServices); reader = commandServices.ExecuteReader(); while (reader.Read()) { string queryMetrics = "select * from servicemetrics where ServiceID = @ServiceID order by InterrogationDate DESC"; MySqlCommand commandMetrics = new MySqlCommand(queryMetrics, myConnectionMetrics); commandMetrics.Parameters.AddWithValue("@ServiceID", reader.GetInt32(0)); DbDataReader readerMetrics = commandMetrics.ExecuteReader(); readerMetrics.Read(); string queryTests = "SELECT * FROM servicebuild where ServiceID=@ServiceID and (result = 'succeeded' or result = 'partiallySucceeded') and BuildName LIKE 'Sonar_%' order by FinishTime DESC"; MySqlCommand commandTests = new MySqlCommand(queryTests, myConnectionTests); commandTests.Parameters.AddWithValue("@ServiceID", reader.GetInt32(0)); DbDataReader readerTests = commandTests.ExecuteReader(); MetricViewModel Servicemetrics = new MetricViewModel(); Servicemetrics.ServiceProfile = readerMetrics.GetString(2); Servicemetrics.NumberBugs = readerMetrics.GetInt32(3); Servicemetrics.NumberVulnerabilities = readerMetrics.GetInt32(4); Servicemetrics.NumberCodeSmells = readerMetrics.GetInt32(5); Servicemetrics.Coverage = readerMetrics.GetDecimal(6); Servicemetrics.Duplication = readerMetrics.GetDecimal(7); Servicemetrics.Size = readerMetrics.GetInt32(8); Servicemetrics.Complexity = readerMetrics.GetInt32(9); Servicemetrics.Documentation = readerMetrics.GetDecimal(10); Servicemetrics.ServiceName = reader.GetString(1); Servicemetrics.DirectionName = reader.GetString(2); Servicemetrics.TeamName = reader.GetString(3); if (readerTests.Read()) { //Servicemetrics.PassedTests = readerTests.GetInt32(8); //Servicemetrics.TotalTests = readerTests.GetInt32(6); if (!readerTests.IsDBNull(8)) { Servicemetrics.PassedTests = readerTests.GetInt32(8); } if (!readerTests.IsDBNull(6)) { Servicemetrics.TotalTests = readerTests.GetInt32(6); } } readerMetrics.Dispose(); readerTests.Dispose(); Metrics.Add(Servicemetrics); } return(Metrics); }