//------------------------------------------------------------------------------ // // Method: ProcessCountMetricEvent // //------------------------------------------------------------------------------ /// <summary> /// Writes a count metric event to the database. /// </summary> /// <param name="countMetricEvent">The count metric event to write.</param> protected override void ProcessCountMetricEvent(CountMetricEventInstance countMetricEvent) { StringBuilder sqlInsertStatement = new StringBuilder(); sqlInsertStatement.Append("INSERT "); sqlInsertStatement.Append("INTO CountMetricInstances "); sqlInsertStatement.Append(" ( CmetId, "); sqlInsertStatement.Append(" CtgrId, "); sqlInsertStatement.Append(" [Timestamp] "); sqlInsertStatement.Append(" ) "); sqlInsertStatement.Append("SELECT Cmet.CmetId, "); sqlInsertStatement.Append(" Ctgr.CtgrId, "); sqlInsertStatement.Append(" '" + countMetricEvent.EventTime.ToString("yyyy-MM-dd HH:mm:ss") + "' "); sqlInsertStatement.Append("FROM CountMetrics Cmet, "); sqlInsertStatement.Append(" Categories Ctgr "); sqlInsertStatement.Append("WHERE Cmet.Name = '" + countMetricEvent.Metric.Name + "' "); sqlInsertStatement.Append(" AND Ctgr.Name = '" + metricCategoryName + "';"); dbCommand.CommandText = sqlInsertStatement.ToString(); try { dbCommand.ExecuteNonQuery(); } catch (Exception e) { exceptionHandler.Handle(new Exception("Failed to insert instance of count metric '" + countMetricEvent.Metric.Name + "'.", e)); } }