private static void UpdateTestSampleParams(SqlCommand cmd, Sample dataPoint) { try { cmd.Parameters["@SampleTime"].Value = dataPoint.SampleTime; cmd.Parameters["@Torque"].Value = dataPoint.Torque; cmd.Parameters["@Angle"].Value = dataPoint.Angle; } catch (Exception ex) { Debug.WriteLine(Msg.GeneralExceptionMessage(ex, "UpdateTestSampleParams")); throw; } }
internal static void UpdateSpeedSettings(int runSpeed, int moveSpeed, int testId) { SqlConnection conn = null; try { var sel = "up_SaveTestSettings"; conn = TwisterConnection(); SqlCommand cmd = CreateCommand(conn, sel); cmd.Parameters.Add(new SqlParameter { ParameterName = "@runSpeed", Value = runSpeed }); cmd.Parameters.Add(new SqlParameter { ParameterName = "@moveSpeed", Value = moveSpeed }); cmd.Parameters.Add(new SqlParameter { ParameterName = "@testId", Value = testId }); int rowsAffected = cmd.ExecuteNonQuery(); if (rowsAffected != 1) { string message = $"Error saving speed settings. Expected 1 update using " + $"run speed = {runSpeed} and move speed = {moveSpeed}."; throw new Exception(message); } cmd.Dispose(); } catch (Exception ex) { Debug.WriteLine(Msg.GeneralExceptionMessage(ex, "SaveToDatabase")); } finally { CloseConnection(conn); } }
/// <summary> /// Populate a template that already has the TemplateId property determined. /// </summary> /// <param name="template">A completed TestTemplate.</param> internal static void LoadTemplateThatHasId(TestTemplate template) { SqlConnection conn = null; try { var sel = "up_LoadTestSettings"; conn = TwisterConnection(); SqlCommand cmd = CreateCommand(conn, sel); cmd.Parameters.Add(new SqlParameter { ParameterName = "@templateId", Value = template.Id }); using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { template.Description = dr["TestDescription"] as string; template.ClockwiseTorque = (int)dr["ClockwiseTorque"]; template.CounterclockwiseTorque = (int)dr["CounterclockwiseTorque"]; template.RunSpeed = (int)dr["RunSpeed"]; template.MoveSpeed = (int)dr["MoveSpeed"]; } } cmd.Dispose(); } catch (Exception ex) { Debug.WriteLine(Msg.GeneralExceptionMessage(ex, "SaveToDatabase")); } finally { CloseConnection(conn); } }
internal static int SaveToDatabase(TorqueTest test) { SqlConnection conn = null; try { var rowsAffected = 0; var sel = "up_SaveTwisterTest"; conn = TwisterConnection(); SqlCommand cmd = CreateCommand(conn, sel); SetTorqeTestParameters(cmd, test); TransactionOptions options = new TransactionOptions(); /* It allow shared locks and read only committed data. That means * never read changed data that are in the middle of any transaction. */ options.IsolationLevel = IsolationLevel.ReadCommitted; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew, options)) { // save the test. rowsAffected += cmd.ExecuteNonQuery(); var spDtPt = "up_SaveDataPoint"; cmd.Dispose(); cmd = CreateCommand(conn, spDtPt); // save each data point. foreach (Sample dataPoint in test.Data) { if (cmd.Parameters.Count == 0) { SetTestSampleParameters(cmd, dataPoint, test.TestId); } else { UpdateTestSampleParams(cmd, dataPoint); } // increment number of rows affected. rowsAffected += cmd.ExecuteNonQuery(); } scope.Complete(); } cmd.Dispose(); return(rowsAffected); } catch (Exception ex) { Debug.WriteLine(Msg.GeneralExceptionMessage(ex, "SaveToDatabase")); return(0); } finally { CloseConnection(conn); } }