protected virtual void WriteResult(MeasuredParameter mp, AlertMeasure am) { DataManager.ConnectionString = AppSettings.GetAbsolute("Easynet.Edge.Core.Workflow.AlertConnectionString"); //Create the command. using (DataManager.Current.OpenConnection()) { AlertMeasures measures = (AlertMeasures)ParentWorkflow.InternalParameters["AlertMeasures"]; string sql = "INSERT INTO AlertResults "; string columns = "(wf_id,wf_date,wf_parameters,wf_conditionValues,entity_type,Account_id,Channel_id,Account_name,Current_Day,Compare_Day,measure_id,measure_current_value,measure_compare_value,measure_change_ratio"; columns += GetColumns(mp); sql += columns + " VALUES("; int wfID = ParentWorkflow.WorkflowID; if (wfID <= 0) { if (ParentWorkflow.Parameters.ContainsKey("WorkflowID")) { wfID = Convert.ToInt32(ParentWorkflow.Parameters["WorkflowID"]); } } string values = String.Empty; values = wfID.ToString() + ",'" + DateTime.Now.ToString("yyyyMMdd HH:mm:ss") + "','" + ParentWorkflow.GetParametersAsString() + "','" + ParentWorkflow.GetConditionValuesAsString() + "'," + Convert.ToInt32(_entityType).ToString() + ","; values += mp.AccountID.ToString() + "," + mp.ChannelID.ToString() + ",'" + mp.AccountName + "'," + DayCode.ToDayCode(mp.CurrentDay).ToString() + "," + DayCode.ToDayCode(mp.CompareDate).ToString() + ","; values += mp.GetMeasureParameterSQL(am, measures) + ")"; sql += values; SqlCommand alertResults = DataManager.CreateCommand(sql); try { alertResults.ExecuteNonQuery(); } catch (Exception ex) { Log.Write("Failed to write alert result to database.", ex); throw ex; } } }